LINUX學習—Vim編輯器
Vim編輯器
- 文字編輯器:編輯純ASCII的文件,沒有多餘的修飾符
- 字處理器:除了基本的文字之外還儲存其他附加資訊
- vim是一種全屏編輯器,模式化編輯器
vim模式:
1. 編輯模式(命令模式,執行命令),預設為該模式 在該模式中,可以輸入命令來執行許多種功能,控制螢幕游標的移動,字元、字或行的刪除,移動複製某區段及進入insert mode下,或者到last line mode。 2. 輸入模式—輸入文字 vi被執行時,通常處在命令模式下,鍵入以下命令可以使vi退出命令模式,進入輸入模式:I(i)、A(a)、O(o) 3. 末行模式-執行待定命令 將檔案儲存或退出vi,也可以設定編輯環境,如尋找字串、列出行號...等。
模式轉換:
1. 編輯–>輸入:
- i:在當前游標所在字元的前面,轉為輸入模式;
- a:在當前游標所在字元的後面,轉為輸入模式;
- o:在當前游標所在行的下方,新建一行,並轉為輸入模式;
- I:在當前游標所在行的行首,轉為輸入模式;
- A:在當前游標所在行的行尾,轉為輸入模式;
O:在當前游標所在行的上方,新建一行,轉為輸入模式;
輸入–>編輯:
ESC末行模式:
- 編輯–>末行: 輸入:即可
- 末行–>編輯(esc)
一、開啟檔案
# vim /path/to/somefile
vim +n:表示開啟檔案並使游標定位在第n行的第一個字元上;
vim +:開啟檔案並定位在最後一行;
vim +/PATTERN:開啟檔案,定位至第一次被PATTERN匹配到的行的行首;
二:關閉檔案
1:末行模式關閉檔案
- q:退出,不儲存退出;
- wq:儲存並退出;
- q!:不儲存並退出
- w:儲存
- !w:強行儲存(針對只讀檔案,這個命令主要是管理員用)
2、編輯模式下退出
ZZ:儲存並退出
三、 移動游標(編輯模式):
逐字元移動:
- h:左
- l:右
- j:下
- k:上
- #n:移動n個字元;
按單詞為單位移動
- w:移至下一個單詞詞首;
- e:跳至當前單詞或下一個單詞的詞尾;
- b:跳至當前單詞或下一個單詞的詞首;
- #n:支援命令加數字,
行內跳轉
- 0:絕對行首
- ^:行首的第一個非空白字元
- $:絕對行尾
行間跳轉
- nG:跳轉至第n行
- G:最後一行
末行模式下,直接給出行號即可;
四、翻屏
- CTRL+F:向下翻一屏
- CTRL+b:向上翻一屏
- CTRL+d:向下翻半屏
- CTRL+u:向上翻半屏
五、刪除單個字元
x:刪除所在處的單個字元
nx:刪除游標所在處及向後的共n個字元
六、刪除命令:d
d命令和跳轉命令結合使用
如:dw,de,db,d$
dd:刪除游標所在行;
dd:包括游標所在內的#行;
末行模式下:
StartADD, EndADDddb
.:表示當前行
-1:倒數第二行)
+數字:向下n行
七、貼上命令 p
p(小寫): 如果刪除或複製為整行內容,則貼上至游標所在行下方,如果複製或刪除的內容為非整行,則貼上至游標所在字元的後面;
P(大寫):如果刪除或複製為整行內容,則貼上至游標所在行上方,如果複製或刪除的內容為非整行,則貼上至游標所在字元的前面;
八、複製命令 y
用法同d命令
九、修改:先刪除內容,再轉換為輸入模式(修改)
c:用法同d命令
cc/c$
十、替換:r
R:替換模式,替換多個字元,ESC退出
r:替換單個字元;
十一、撤銷編輯操作u(undo)
u:撤銷前一次的操作
連續u命令可撤銷此前的n次操作,最多隻能撤銷50次
數字u:直接撤銷最近n次操作
撤銷最近一次撤銷操作:ctrl+r
十二、重複前一次編輯操作.
.
十三、視覺化模式
v:按字元選取
V:按矩形選取,即選取整行
十四、查詢
/PATTERN:從當前游標向檔案尾部查詢
?PATTERN(支援正則表示式):從當前游標向檔案首部查詢
- N:往前跳轉
- n:往後跳轉
十五、查詢並替換
在末行模式下使用s命令(和sed一樣)
ADDR1起始地址,ADDR2結束地址[email protected]@[email protected]
1, $:表示全文
%:表示全文
十六、使用Vim編輯多個檔案
vim file1 file2 file3
- :next切換下一個檔案
- :prev切換至前一個檔案
- :last切換至最後一個檔案
- :first切換至第一個檔案
退出
- :qa 全部退出
十七、分屏顯示一個檔案
ctrl+w,鬆開後按,s:水平拆分視窗
ctrl+w,鬆開後按,v:垂直拆分視窗
:qa關閉所有視窗
十八、分視窗編輯多個檔案
vim -o:水平分割顯示
vim -O:垂直分割顯示
十九、將當前檔案中部分內容另存為另外一個檔案
末行模式下使用w命令
:w
格式(:ADDR1,ADDR2w /path/to/somewhere)
二十一、跟shell互動
:!COMMAND
ctrl+c結束shell模式
二十二、高階話題
顯示或取消顯示行號(僅對當前vim程序有效)
:set number
:set nu
:set nonu顯示忽略或區分字元大小寫
:set ignorecase
:set ic
:set noic- 設定自動縮排
:set autoindent
:set ai
:set noai - 查詢到的文字高亮顯示或取消
:set hlsearch
: set nohlsearch - 語法高亮
:syntax on
: syntax off
二十三、配置檔案
/etc/vimrc:對所有使用者都生效
~/.vimrc:該使用者家目錄下隱藏檔案