vim 學習筆記

內容來源:《vim 實用技巧》一書

vim 移動位置的鍵:

h 左

j 下  gj 按屏幕行向下移動

k 上  gk 按屏幕行向上移動

l 右

0 移動到行首  g0 屏幕行行首

^ 移動到實際行的第一個非空白字符 g^ 屏幕行

$ 移動到行尾 g$ 屏幕行行尾

w 正向移動到下一單詞的開頭

b 反向移動到上一單詞的開頭

e 正向移動到下一單詞的結尾

ge 反向移動到上一單詞的結尾


. 表示重複上一次的動作

@:表示重複上一次的Ex命令

;表示重複上一次f[c]查找


可視模式下選中字符按U 或 u是切換字符大小寫

用法:

gUU 把一行中的字符變大寫

guu 把一行中的字符變小寫


gv 返回上一次可視塊的選中狀態

可視模式下按I進入插入模式,插入的字符會插入到選中的區塊範圍


命令行模式匹配的符號:

1 文件第一行

$ 最後一行

0 虛擬行 第一行上方

. 光標所在行

'm 包含位置標記m的行

'<,'> 高亮選區的起止行

% 表示1,$的簡寫即所有行


:copy :t 複製行

用法:

:[range]copy {address}

:6t. 表示把第6行復制到當前行的下一行

:t6  表示把當前行復制到第6行下方

:t.  等同於yyp

:t$  把當前行復制到文件末尾

:'<,'>t0 把高亮區段複製到文件開頭


:move :m 移動行的用法類似copy


在指定範圍上執行普通模式命令:

:normal i//


tab自動補全Ex命令,Ctrl+d列出補全命令的列表

習慣用bash shell的工作方式一般設置爲

:set wildmode=longest,list


默認Ex命令會記錄20條歷史記錄,

增加歷史記錄條數可把以下配置寫入vimrc文件

set history=200


普通模式下打開查找和Ex命令歷史命令的命令行窗口:

q/

q:


運行shell命令:

:!ls -lh %   

%在這裏代表當前文件名

:read  ![cmd] 把shell命令執行結果插入到光標下方

:[range]write ![cmd] 把vim中的範圍字段作爲標準輸入到shell命令

:[range]!{filter} 使用外部shell命令過濾指定的vim範圍字段


vim 默認按 tab 鍵是向前進8個空格,即縮進的字符爲8個,

可以在命令行模式用下面的設置縮進爲4個空格:

set shiftwidth=4 softtabstop=4 expandtab


在普通模式下,縮進一行或是一段可以用>> <<

分別表示向右和向左縮進


一次打開多個文件的情況下

:ls 表示列出緩衝區的文件列表

:bp :bn 可上下切換打開的文件


:ls

4 %a   "ifcfg-eth0"                   第 3 行

5 #    "install.log"                  第 2 行

%在這裏表示當前窗口打開的文件,#表示輪換文件,按ctrl^ 可在當前和輪換文件間切換 


參數列表:

:args

默認是打印當前參數列表的內容,

:args [file1] [file2]

設置參數列表的內容

:args **/*.*  表示把子目錄下的所有文件加入緩衝區

:args `cat filelist.txt` 把shell命令執行結果中的文件作爲參數加入


:qall!      退出不保存所有緩衝區的修改

:wall       保存所有緩衝區修改


水平/垂直切分窗口:Ctrl+w s/v

切分後另一個窗口打開新文件

:sp file

:vp file

切換窗口命令:

Ctrl+w w  循環切換

Ctrl+w h/j/k/l 按方向切換

:close 關閉活動窗口

:only 只保留活動窗口


Ctrl+w = 所有窗口等寬等高

Ctrl+w _ 最大化活動窗口高度

Ctrl+w | 最大化活動窗口寬度

以下是設置爲N行

N Ctrl+w _

N Ctrl+w | 


打開文件:

:edit 

:edit %<tab>打開當前文件所在的路徑,包含文件名

:edit %:h<tab>打開路徑,不包含文件名


如果navigation在app子目錄下,可以用設置path後通過find查到並打開,

:set path+=app/**

:find navigation.js


可視模式下:

a)  一對圓括號

i)  圓括號內部

at  一對XML標籤

it  XML標籤內部

iw  當前單詞

aw  當前單詞加一個空格

iW

aW

is

as

ip

ap


daw 

ciw


位置標記:

mm

`m

`` 上次跳轉動作之前的位置

`.  上次修改的地方

`^  上次插入的地方

`[  上次修改或複製的起始位置

`]  上次修改或複製的結束位置

`<  上次高亮選區的起始位置

`>  上次高亮選區的結束位置


% 在匹配括號間跳轉

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章