2008-11-14 27 views
27

我試圖在vim下使用shorcut在光標下增加一個變量。這在Linux上運行的vim下工作正常。但是,當我嘗試在gvim下在windows下執行此操作時,它會「選擇所有」(即突出顯示或直觀地選擇當前窗口中的所有文本)。我該如何改變這種行爲,或者我怎樣才能恢復增量變量功能(例如,可能使用不同的鍵映射)?爲什麼< C-a>(CTRL + A)在Windows下無法在gvim下工作?

+0

看到這個http://stackoverflow.com/questions/66919/how-to-increment-in-vim-under-windows-where-ctrl-a-does-not-work.I認爲保羅的答案會沒事 – 2013-05-09 08:10:28

回答

27

這是因爲mswin.vim是由安裝vim時生成的默認_vimrc生成的。 只需使用在* nix下使用的.vimrc覆蓋您的_vimrc,或者刪除mswin.vim。

+8

mswin.vim被認爲是邪惡的。我希望布拉姆會停止包括它。 – Zathrus 2008-11-14 13:04:44

+1

這可以通過mrswin.vim解決:http://www.vim.org/scripts/script.php?script_id=514 – 2010-02-17 13:57:02

4

默認情況下,Windows上的Vim具有專門的鍵映射,以使快捷鍵更加「windows-y」。這些文件在$ VIMRUNTIME \ mswin.vim文件中指定,該文件通過vimrc加載,除非您禁用它。你可以編輯mswin.vim文件(你可能想編輯一個副本,改變你的vimrc來代替使用你編輯的副本)。

我不能完全肯定這是一個默認Vim的映射,因爲只有參考,我可以找到在幫助文件中按Ctrl + A是這一點,這似乎並沒有做你是指什麼:

*c_CTRL-A* 
CTRL-A  All names that match the pattern in front of the cursor are 
       inserted. 

所以你可能想檢查你的Linux機器,看看有沒有插件或任何東西改變了密鑰映射。 (當然,這可能是我找不到Vim幫助的適當部分。)

1

在當前版本的mswin.vim提供的gvim中,該文件檢查全局名爲skip_loading_mswin ;如果設置,文件的其餘部分將被跳過;因此足以

let skip_loading_mswin=1 

添加到$HOME/_vimrc和正常的vim的綁定將在下次啓動Vim都要恢復。

3

如果你只是不喜歡按Ctrl一個行爲,但都是精品與其他窗口的行爲在VIM(如按Ctrlž爲撤銷),只需禁用該特定行:

  1. 編輯所述文件(c:\Program Files\Vim\vim73\mswin.vim對我來說)
  2. 找到段落開頭CTRL-A is Select all
  3. 前置所有(6)帶有開頭括號的段落行("
  4. 重新打開您的GVIM窗口。

您仍然可以通過輸入ggVG(位置光標在第一行,選擇整行,選擇直到文檔的最後一行)來「選擇全部」。

快樂遞增!

5

我知道我遲到了,但我想我會分享如下:

nnoremap <kPlus> <C-a> 
nnoremap <kMinus> <C-x> 

此重新映射增量數字鍵盤和遞減到+關鍵 -鍵。這是我在Windows自己的_vimrc文件中使用的解決方案。它使Windows的兼容性,而且更容易記住比原來按Ctrl +一個/按Ctrl +X爲好。

相關問題