Intellij中vim插件常用指令

寄存器

:reg

查看當前各個寄存器中的內容

vim中沒有所謂刪除,實際上都是剪切,黑洞寄存器除外

無名寄存器(”“)

x、s、d{motion}、c{motion}和y{motion}指令都會覆蓋無名寄存器中的內容

複製專用寄存器(”0)

使用y{motion}指令時,複製的數據不僅會保存到無名寄存器中,還會在複製專用寄存器值保留一份。

使用:普通模式下"0p,插入模式下<C-r>0

有名寄存器(”a-“z)

vim提供了一組一26個英文字母命名的有名寄存器

content,當前光標在t位置上,使用"ayiw可以複製到a寄存器中

如果換成大寫字母引用的有名寄存器的話,表示對與之對應的小寫有名寄存器的內容上的追加

例如:insurance,執行"Ayiw,再執行:reg查看寄存器中的內容,可以看到a寄存器中的內容變成了content insurance

黑洞寄存器(“_)

執行"_d{motion}表示vim將刪除該文本

系統剪貼板(“+)與選擇專用寄存器(“*)

在外部程序中用剪切或複製獲取的文本可以通過"+p(插入模式下用<C-r>+)粘貼到vim內部中。相反地,如果再vim中複製或剪切指令想在外部程序使用,可以在之前加入"+

鑑於Windows與Mac OS X操作系統沒有主剪貼板的概念,所以"+"*可以混合使用,更推薦使用"+寄存器。

文件

分割窗口

普通命令 Ex命令 用途
<C-w>s :split:sp 水平切割
<C-w>v :vsplit:vsp:vs 垂直切割

窗口切換

命令 用途
<C-w>w 在窗口鍵循環切換
<C-w>h 切換到左邊的窗口
<C-w>j 切換到下邊的窗口
<C-w>k 切換到上面的窗口
<C-w>l 切換到右邊的窗口

關閉窗口

普通命令 Ex命令 用途
<C-w>c :clo[se] 關閉活動窗口
<C-w>o :on[ly] 只保留活動窗口,關閉其他所有窗口

標籤打開及移動

普通命令 Ex命令 用途
:tabe[dit]{filename} 在新標籤頁中打開{filename}
<C-w>T 把當前窗口移到一個新標籤頁
:tabc[lose] 關閉當前標籤頁及其他的所有窗口
:tabo[nly] 只保留活動標籤頁,關閉所有其他標籤頁
gt :tabn[ext] 切換到下一標籤頁
gT :tabp[revious] 切換到上一標籤頁
{N}gt :tabn[ext]{N} 切換到編號爲{N}的標籤頁

動作命令

實際行和屏幕行間的移動

命令 用途
gj 向下移動一個屏幕行
gk 向上移動一個屏幕行
g0 移動到屏幕行的行首
g^ 移動到屏幕行的行首
g$ 移動到屏幕行的行尾
//下面實際上只有三行,但是因爲屏幕寬度不夠所以變成了9行,所以9就是屏幕行
1  This is where the devil goes walking, looking with interest in at
the window of Dr. Guillotin, who works night and day to perfect 
his humane killing machine, sharpening his angled blade on the
innocent necks of sheep.
2  Little does the earnest doctor know that his new design will be
center stage, a bloody altarpiece in the drama that is about to
unfold.
3  But wait, not so fast. King Louis XVI and his queen, Marie
Antoinette, are still outside Paris, at Versailles.

單詞移動

命令 用途
ge 反向移動到上一單詞的結尾
W 正向移動到下一字符串的開頭
E 正向移動到當前字符串/下一字符串的結尾
B 反向移動到當前字符串/上一字符串的開頭

字符查找

命令 用途
f{char} 正向移動到下一{char}所在之處
F{char} 反向移動到下一{char}所在之處
t{char} 正向移動到下一{char}所在之處的前一個字符串(不包含{char})
T{char} 反向移動到下一{char}所在之處的後一個字符串(不包含{char})

1.分隔符文本對象

以a開頭的文本對象可以想象成around或者all

文本對象 選擇區域
a)或ab 一對圓括號(parentheses)
a}或aB 一對花括號{braces}
a] 一對方括號[brackets]
a> 一對尖括號<angle brackets>
a’ 一對單引號’single quotes’
a” 一對雙引號”double quotes”
a` 一對反引號 `backticks`
at 一對XML標籤<xml\>tags</xml\>

例子:

<div>click here</div>,執行citContent
變成如下
<div>Content</div>


以i開頭的文本對象可以想象成inside,表示只處理文本中裏面的
內容,不包括分隔符

文本對象 選擇區域
i)或ib 一對圓括號(parentheses)
i}或iB 一對花括號{braces}
i] 一對方括號[brackets]
i> 一對尖括號<angle brackets>
i’ 一對單引號’single quotes’
i” 一對雙引號”double quotes”
i` 一對反引號 `backticks`
it 一對XML標籤<xml\>tags</xml\>

2.文本塊對象

文本對象 選擇範圍
iw 當前單詞
aw 當前單詞及一個空格
iW 當前字符串
aW 當前字符串及一個空格
is 當前句子
as 當前句子及一個空格
ip 當前段落
ap 當前段落及一個空行

設置標記

m{a-zA-Z}命令會用選定的字母標記當前光標所在的位置,小寫字母只在每個緩存區局部可見,大寫則是全局可見,其中跳轉標記只是跳轉到某一行的某個一位置上,與該位置在哪一個file上無關。
{a-zA-Z}可以跳轉到指定的標記處。

普通命令 用途
當前文件中上次跳轉動作之前的位置
`. 上次修改的地方
`^ 上次插入的地方
`[ 上次修改或複製的起始位置
`] 上次修改或複製的結束位置
`< 上次高亮選區的起始位置
`> 上次高亮選區的結束位置
gi `^標記回覆光標位置,並切換到插入模式(適合用於退出插入模式,接着在文檔中四處遊走,又想快速回到推出的地方繼續編輯)

跳轉指令

命令 用途
% 跳轉到匹配括號所在之處
(/) 跳轉到上一句/下一句的開頭
{/} 跳轉到上一段/下一段的開頭
gf 跳轉到光標下的文件名
<C-]> 跳轉到匹配當前光標所在的關鍵字的第一處標籤(還可以跳入類內部)
<C-t> 讀取上面命令的跳轉歷史記錄(可以理解成後退查找)
<C-i> 單文件中前進一步
g<C-]> <C-]>類似,不過可以跳轉到指定位置(關鍵字存多處匹配)IDE中無法使用

Z指令

命令 用途
zz 將當前行居中
zt 將當前行置頂(top)
zb 將當前行置底(bottom)
ZZ 關閉活動窗口
zo 打開摺疊
zc 關閉摺疊

插入模式快捷鍵

命令 用途
<C-h> 刪除左邊的字符(容易和idea 的查看類繼承熱鍵衝突)
<C-y> 複製上方一個字符(打開智能提示的話也容易失效發生奇異的現象)
<C-e> 複製下方一個字符(同上)
<C-w> 刪除光標左邊的單詞
<C-a> 插入上一次插入模式所鍵入的內容

範圍操作

命令 用途
={範圍} 將範圍內的代碼自動縮進
gU{範圍} 將範圍內的字符轉換成大寫
gu{範圍} 將範圍內的字符轉化成小寫

用次數做簡單的算術運算

普通模式下執行簡單的算術運算。但是如果光標不在數字上的時候,執行<C-a><C-x>的命令,將在當前行正想查找一個數字,如果找到了,光標就直接跳轉到那裏。
注:Idea中也能使用

命令 用途
<C-a> 對數字執行加操作
<C-x> 對數字執行減操作
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章