WebStorm安裝Vim以及快捷鍵設置


運氣好,趕上了2012年12月21日“世界末日”的促銷活動,便宜買到了這款號稱The smartest JavaScript IDE的軟件。

我一向對工具很挑剔,由於是從.NET轉型成Web前端,在嘗試了Sublime Text 2以后,還是覺得VS把Web Essential, VsVim之類的插件裝全了,更好用也更好看一些。

同時,作為一個Vim的受益者,IDE對Vim支持得如何很大程度上影響了我的選擇。在vim的支持方面,VS的VsVim和Sublime的Vintage都有一些缺陷。種種原因,令我對WebStorm充滿了期待。

安裝Vim插件

在主界面用快捷鍵ctrl+alt+s打開settings界面,左側導航欄里選中plugin項,如下圖:

browse_repo

選中plugins后,會在右側列出所有已安裝的插件,我們要新安裝一個插件,因此要點擊Browse repositories。

彈出的新窗口默認會列出所有的插件,我們在右上角的搜索框輸入ideavim進行篩選,然后在ideaVim上右鍵選擇Download and install,如下圖:

ideavim

下載進度會顯示在WebStorm主窗口底部的狀態欄,下載完畢后會有提示,需要重啟Web Storm才能使插件生效,如下圖:

restart

重啟后,就已經是Vim的輸入方式了。這時候打開Tools菜單,會看見多了兩項。

VIM Emulator:切換是否使用Vim的輸入方式。

Reconfigure VIM Keymap: 設置快捷鍵。下文中我們將會用它來設置快捷鍵。

reconfig_vim_keymap

 

設置快捷鍵

長期在Windows下工作,使用Vim不可避免要搭配一些Windows的快捷鍵,比如ctrl+c, ctrl+v,在gVim, VsVim, Vintage里都做出了妥協,采用了Windows的行為。但WebStorm默認並沒有保持這些快捷鍵在Vim中原有的作用。沒關系,下面就來詳述一下如何解決這個問題。

具體做法是:新建一套鍵盤映射,然后讓vim使用這套映射。

首先,在主界面用快捷鍵ctrl+alt+s打開settings界面,左側導航欄里選中Keymap項,如下圖:

copy_default

在右側的keymaps下拉列表中選擇Default,我們將以此為基礎進行修改,因此點擊copy按鈕,復制一份新的出來,接下來就可以放心在上面修改了。

給它起一個新的名字myVim。

現在要看看copy命令的快捷鍵,於是在右上的搜索框輸入copy,會把與copy相關的都篩選出來,見下圖:

search_copy

我們看到,ctrl+V和ctrl+Insert都能達到copy的目的。同樣,在Default模式下ctrl+V也可以實現paste操作了,這些快捷鍵都從Default那里繼承了過來。

常使用Vim的人肯定知道Esc鍵有多常用。但現代鍵盤幾乎都讓Esc鍵偏居一隅,夠起來不方便。其實在標准的Vim里,ctrl+[同樣能達到Esc的效果。但是在WebStorm的Default模式下,ctrl+[已經被賦予了另外的作用,由於myVim從Default繼承而來,因此ctrl+[也起不到Esc的作用。好在WebStorm的自定義快捷鍵可以覆蓋系統的默認設置。

在上圖中快捷鍵的位置上點擊右鍵,會彈出用於刪除和添加快捷鍵的菜單。修改的時候,如果和別的快捷鍵有沖突會看到紅字提醒。例如下圖所示,ctrl+[的原有功能是Move caret to code block start. 我們的本意就是給它賦予新的功能,果斷點OK,接下來會再彈一個確認對話框,點remove刪除原有的熱鍵功能。

conflict

 

完成后點擊下面的OK按鈕退出Keymaps設置。如下圖,打開主界面菜單欄中的Tools > Reconfigure VIM Keymap,下拉列表中選擇剛才新建的myVim。重啟WebStorm,大功告成。

reconfig_vim_keymapvim keymap settings

這時候再試一試ctrl+[,是不是已經可以從Insert Mode返回到Normal Mode了?

 

避免按Esc鍵的其他方法

有人覺得ctrl+[按起來麻煩,習慣用CapsLock或者JJ來模擬Esc,可以看一下http://vim.wikia.com/wiki/VimTip285

針對Windows用戶的配置,請參考 http://vim.wikia.com/wiki/VimTip75


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM