日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

vim 自定义命令 自定义快捷键(转)

發布時間:2024/9/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vim 自定义命令 自定义快捷键(转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
有五種映射存在?
- 用于普通模式: 輸入命令時。?
- 用于可視模式: 可視區域高亮并輸入命令時。?
- 用于操作符等待模式: 操作符等待中 ("d","y","c" 等等之后)。?
見下: |omap-info|。?
- 用于插入模式: 也用于替換模式。?
? 用于命令行模式: 輸入 ":" 或 "/" 命令時。?

下表是map綁定中,對應的模式代號。現在先了解一下,等看完之后再回過頭看這個模式代號就會明白了。?
字 符 模 式 ~?
<Space> 普通、可視、選擇和操作符等待?
n 普通?
v 可視和選擇?
s 選擇?
x 可視?
o 操作符等待?
! 插入和命令行?
i 插入?
l 插入、命令行和 Lang-Arg 模式的 ":lmap" 映射?
c 命令行?


我主要講解一下“n(普通模式)”下的兩個綁定命令,等看完之后就對應的明白別的模式下的命令了。?
適用于普通模式的映射命令主要有:?
1. :map?
[語法] :map {lhs} {rhs} |mapmode-nvo| *:map*?
1.1 作用模式: n、v、o (普通、可視和選擇、操作符等待)?
1.2 命令格式:?
:map {lhs} {rhs}?
含義: 在:map作用的模式中把鍵系列 {lhs} 映射為 {rhs},{rhs}可進行映射掃描,也就是可遞歸映射。?
1.3 舉例:?
:map td :tabnew .<cr>?
含義:在其作用模式(普通、可視、操作符)下,輸入td等價于輸入 :tabnew . <cr>。而普通模式下輸入:tabnew . <cr>就是打開當前目錄?
如果再定義綁定 :map ts td,就是指在其作用模式下輸入ts等價于td,也就是打開當前目錄。不過如果沒有特殊需要,一般不建議遞歸映射。?

2. :noremap?
:moremap和:map命令相對,作用模式和命令格式都相同,只不過不允許再對{rhs}進行映射掃描,也就是{lhs}定義后的映射就是{rhs}的鍵序列,不會再對{rhs}鍵序列重新解釋掃描。它一般用于重定義一個命令,當然如果:map不需要遞歸映射的話,建議試用:noremap?
比如:?
:noremap ts td?
它的意思是在其作用模式下,輸入ts就是輸入td,但是和:map不同的是,此時td再不會做進一步掃描解釋。雖然之前已經定義了td,但是不會對td再做掃描?

3. :unmap?
:unmap是對應取消:map綁定的{lhs},作用模式相同,命令格式 :unmap {lhs}。?
例如:?
:unmap td?
就是取消在其作用模式中td的綁定,比如之前td被綁定為:tabnew .<cr>,此時此綁定消失。?
4. :mapclear?
:mapclear時對應取消所有:map綁定的,慎用!?

5. :nmap?
:nmap是:map的普通模式板,也就是說其綁定的鍵只作用于普通模式。?
例如:?
:nmap td :tabnew .<cr> 和 :map td :tabnew .<cr> 在普通模式下等效?
6. :nnoremap?
:nnorempa和:nmap的關系和:noremap和:map的關系一樣,只是:nmap的非遞歸版?
7. :nunmap?
:nunmap和:nmap的關系和:unmap和:map的關系一樣,取消:nmap的綁定。?
8. :nmapclear?
:nmapclear是對應取消所有:map綁定的,慎用!?

看完以上,應該可以發現一個規律,前4個是一組,后4個時一組,后一組比前一組多一個n就是指只作用于普通模式。其中每組內*nore*是其對應的非遞歸版、*un*是取消綁定某個<lhs>綁定、clear后綴是取消所有綁定。發現了這個規律,再翻到前面的模式代號表,你大體可以猜到vmap、xmap、smap、omap是什么意思了吧,以及相對應的nore版本、un版本、clear版本。?

另外:?
{rhs} 之前可能顯示一個特殊字符:?
* 表示它不可重映射?
& 表示僅腳本的局部映射可以被重映射?
@ 表示緩沖區的局部映射?

到這一步你可以輕松的長吸一口氣,因為相關的命令已經都了解了,記不住沒關系,可以隨時:help map一下。不過別急,后面還有map更多的選項等著去攻克。?

鍵表 |key-notation|?
<k0> - <k9> 小鍵盤 0 到 9 *keypad-0* *keypad-9*?
<S-...> Shift+鍵 *shift* *<S-*?
<C-...> Control+鍵 *control* *ctrl* *<C-*?
<M-...> Alt+鍵 或 meta+鍵 *meta* *alt* *<M-*?
<A-...> 同 <m-...> *<A-*?
<t_xx> termcap 里的 "xx" 入口鍵?

特殊參數:?
1. <buffer>?
2. <silent>?
3. <special>?
4. <script>?
5. <expr>?
6. <unique>?
它們必須映射命令的后邊,在其他任何參數的前面。?

<buffer>如果這些映射命令的第一個參數是<buffer>,映射將只局限于當前緩沖區(也就是你此時正編輯的文件)內。比如:?
:map <buffer> ,w /a<CR>?
它的意思時在當前緩沖區里定義鍵綁定,“,w”將在當前緩沖區里查找字符a。同樣你可以在其他緩沖區里定義:?
:map <buffer> ,w /b<CR>?
比如我經常打開多個標簽(:tabedit),想要在各自標簽里定義",w"鍵綁定,那么你只要在每個標簽頁里分別定義就可,其作用域也只在各自的標簽里。同樣要清除這些緩沖區的鍵綁定也要加上<buffer>參數,比如:?
:unmap <buffer> ,w?
:mapclear <buffer>?

<silent>是指執行鍵綁定時不在命令行上回顯,比如:?
:map <silent> ,w /abcd<CR>?
你在輸入,w查找abcd時,命令行上不會顯示/abcd,如果沒有<silent>參數就會顯示出來?

<special>一般用于定義特殊鍵怕有副作用的場合。比如:?
:map <special> <F12> /Header<CR>?

<unique>一般用于定義新的鍵映射或者縮寫命令的同時檢查是否該鍵已經被映射,如果該映射或者縮寫已經存在,則該命令會失敗?

<expr>. 如果定義新映射的第一個參數是<expr>,那么參數會作為表達式來進行計算,結果使用實際使用的<rhs>,例如:?
:inoremap <expr> . InsertDot()?
這可以用來檢查光標之前的文本并在一定條件下啟動全能 (omni) 補全。?
一個例子:?
let counter = 0?
inoremap <expr> <C-L> ListItem()?
inoremap <expr> <C-R> ListReset()?

func ListItem()?
let g:counter += 1?
return g:counter . '. '?
endfunc?

func ListReset()?
let g:counter = 0?
return ''?
endfunc?
在插入模式下,CTRL-L插入順序的列表編號,并返回;CTRL-R復位列表編號到0,并返回空。?


<Leader> mapleader?
mapleader變量對所有map映射命令起效,它的作用是將參數<leader>替換成mapleader變量的值,比如:?
:map <Leader>A oanother line<Esc>?
如果mapleader變量沒有設置,則用默認的反斜杠代替,因此這個映射等效于:?
:map \A oanother line<Esc>?
意思時輸入\A鍵時,在下一行輸入another line并返回到普通模式。?
如果設置了mapleader變量,比如:?
let mapleader = ","?
那么就等效于:?
:map ,A oanother line<Esc>?

<LocalLeader> maplocalleader?
<LocalLeader>和<Leader>類似,只不過它只作用于緩沖區。?
因此在設置mapleader和maplocalleader時最好區分開,不要出現沖突。?

大體上映射的主要部分已經都提到了,還有很多具體的映射相關的內容可以參見:help map

轉載于:https://www.cnblogs.com/zhihaowang/archive/2011/01/07/10128588.html

總結

以上是生活随笔為你收集整理的vim 自定义命令 自定义快捷键(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天堂在线视频 | 波多野结衣爱爱 | 男插女动态图 | 美女裸体跪姿扒开屁股无内裤 | 午夜肉伦伦影院 | 欧美日韩高清一区二区三区 | 国产在线不卡av | 亚洲美女自拍视频 | 少妇视频在线 | 成人自拍视频在线观看 | 91大尺度 | wwwa级片 | 伊人色综合久久久 | 国产情侣小视频 | 亚洲欧美综合视频 | 精品久久网站 | 久草福利视频 | 夜夜骑av | 亚洲成人精选 | 午夜爱爱毛片xxxx视频免费看 | 亚洲精品美女视频 | 欧美日韩在线一区二区 | 欧美日韩一本 | 黄色大片日本 | 国产一级视频在线播放 | 少妇人禽zoz0伦视频 | 在线中文天堂 | 国产精品白嫩极品美女视频 | 精品无码国产av一区二区三区 | 无码人妻熟妇av又粗又大 | 一区二区激情 | 丝袜视频一区 | 欧美aaa在线观看 | 91干| 亚洲成av人片一区二区 | 久久精品国产精品 | 性色欲情网站iwww九文堂 | 啪啪免费小视频 | 国产成人资源 | 天狂传说之巴啦啦小魔仙 | 中文有码av | 国产精品卡一 | 成人日韩| 好吊妞无缓冲视频观看 | 麻豆精品国产传媒 | 天堂在线中文在线 | 国产成人亚洲一区二区 | 日韩福利小视频 | 亚洲人xxx| 好色av | 亚洲av电影一区二区 | 国产一区二区啪啪啪 | 好吊妞视频在线观看 | 在线午夜av| 韩国三级国产 | 三极片黄色| 久久夜色精品亚洲 | 自拍偷拍一区 | 日韩欧美一二区 | 久久久欧美精品sm网站 | 黄色网免费看 | 日本电影一区二区三区 | 欧美在线专区 | 精品123区 | 亚洲激情短视频 | 国产精品久久久久久久专区 | 中国吞精videos露脸 | 特级丰满少妇一级aaa爱毛片 | www.色网 | 欧美视频精品在线 | 国产色在线,com | 久久久久久国产 | 中文一区二区在线观看 | 少妇免费毛片久久久久久久久 | 一区二区在线视频播放 | 三上悠亚激情av一区二区三区 | 深夜视频在线观看免费 | 美国av导航 | 日韩 国产| 日本在线视频www色 国产在线视频网址 | 亚洲精品www. | 中文字幕不卡在线观看 | 少妇高潮毛片 | 久久精品男人 | 久久国产经典视频 | 色猫咪av在线 | 久久久久久久久影院 | 亚洲熟妇一区二区 | 成人精品久久 | 最好看的mv中文字幕国语电影 | 成人高潮视频 | 亚洲精品白浆高清久久久久久 | 人人人妻人人澡人人爽欧美一区 | 国产jk精品白丝av在线观看 | 亚洲av电影一区 | 国产无套精品一区二区三区 | 国产黄色www | 成人免费性生活视频 | 欧美a v在线播放 |