

Vim vs. EmacsVim入坑路徑Vim配置/插件的資源Vim便利切換的問題Vim打開文件亂碼問題Vim字體設置Vim Mapcrontab -e修改失敗Vim中文分詞支持的問題
Vim vs. Emacs一上來就要說一個『宗教性』問題,很危險啊! ? 這節不會說2個編輯器有什麼不好,再者自己並不熟悉Emacs ,只說自己了解到的一點感覺。
Vim:編輯器之神;Emacs:神的編輯器。 ?
上面的這句調侃不重要,重要的是效率:heavy_exclamation_mark:
個人沒入Emacs圈,牛掰編輯器先入的是Vim 。自己作為一個Emacs圈外人,對於兩者對比的感覺是:
Vim ,從編輯理念出發並思考很深,通過面向編輯的語言進而腳本化/編程化的能力實現平台化。Vim提供了一套面向編輯的語言:diw : delete in word , delete in word ; dd :刪除行(重複命令是對行操作)。x :刪除一個字符, 5x :重複5次刪除字符(即刪除5個字符)。norm命令或是宏把指令腳本化。這裡不展開了。Emacs ,平台理念很深,以平台化思路承載和帶動編輯理念。Emacs打造成Vim ,當然Emacs也提供一套自己編輯風格,基於組合快捷鍵,現在各種軟件都提供快捷鍵來加速操作,尤其是程序員的IDE更是重度依賴熟練的使用快捷鍵。Emacs的平台特質可以看看文章:Vim ,也提到了一點:vi追求的是快捷——啟動程序迅速,編輯文本高效,功能專注,而Emacs追求的是功能的豐富強大以及集成帶來的方便,在Emacs裡頭可以發郵件,上新聞組,聽MP3 ,瀏覽網頁,玩遊戲,幾乎可以login -> emacs -> logout了:-), vi和Emacs都是程序員的編輯器,相比而言, Emacs更是提供了一種程序員的生活氛圍。Vim到Emacs到EvilEmacs只是個強大的平台,提供各種定制來滿足每個人的不同需求。所以Thanks Evil ,我已把Emacs打造成了理想的『 Vim化的Emacs Editor 』,我可以縱情使用更方便的方式來工作。spacemacs ,已經是最火的Vim / Emacs配置發行版了,我還一直沒有去上手?,真是山外有山而學無止境啊~ ?Editing is a rewording activity. -- Alan J. Perli
編輯是推敲改寫的過程。 —— 艾倫·傑·佩利(計算機程序設計領域的科學家,首屆圖靈獎的獲得者)
人類智慧輸出包含了『錄入』和『編輯』操作。
目前,『鍵盤錄入』/『鍵盤編輯』是主流方式。
鍵盤操作效率的關鍵是『打字指法』/『盲打』。
對於錄入,當然還有語音錄入等等(期待腦電波的錄入方式成為現實?)。
對於中文,還多一樣,即『輸入法』,如五筆、拼音。
『編輯器』 對於編輯的重要性不言而喻。
綜上,智慧輸出包含了:
上面『打字指法』和『編輯器』的順序重要的,如果你還不能盲打,那麼不要想著要找一個的編輯器就能高效了! ?

Vim入坑路徑Vim整體評論性文章,覺得值得入門上手。Vim名聲在外,問題其實是入門門檻。vimtutor ,上手了解些基本操作。這時候心理上要注意:Vim環境生存下來。首先要避免為了退出Vim要去重啟機器吧~Vim實用技巧- 以思維的速度編輯文本》邊操作,完成實踐和理念儲備。spf13-vim發行版,舒適強大專業的Vim環境配置。spf13-vim可能的一些坑。surround 。Vim is awesomeVIM is awesome — But don't overdo itVim練級攻略- coolshell.cn | 英文原文Learn Vim ProgressivelyVimVim / Vim使用感覺/上手的高效配置/好用的插件。Vim / 程序員的編輯器—— VimVim的風格、能力和一致性設計。Vim使用效率的12 個技巧Vim PluginsVim不是IDE ? 』系列:Vim配置? - 知乎VIM能配置到多強大的程度? - 知乎Vim和Emacs ,卻對IDE嗤之以鼻? - 知乎Emacs的文章(能有瑜亮般的對手而相互競爭與學習,比起高處不勝寒的孤寂可以說是幸運!)Vim到Emacs到EvilEmacs只是個強大的平台,提供各種定制來滿足每個人的不同需求。所以Thanks Evil ,我已把Emacs打造成了理想的『 Vim化的Emacs Editor 』,我可以縱情使用更方便的方式來工作。Emacs是一種信仰!世界最強編輯器介紹》vimtutor
內容比較精簡且有中文版的:
Vim Cheat Sheet中文版- vim.rtorr.comvi / Vim Cheat Sheet and Tutorial中文版(右圖,點擊看大圖)內容比較豐富的:

Vim Cheat-Sheet (右圖,點擊看大圖)Cheat Sheet有幾個就夠用了,別多看了你~ 當然還有更多Vim Cheat Sheet ?
Vim user manual/reference,即是Vim的內置幫助系統,內容豐富! !Vim的內置幫助:h :h 'option' :h command :h :ex_command :h ctrl-wVim幫助系統的幫助,即如何使用Vim的幫助系統: :h helphelpVim書籍豆列Vim , Second Editionvi和Vim編輯器(中文版) | 《Learning vi and Vim Editors》,行文穩健(很合我的風格):vi / ex )再說明Vim ,從歷史發展的過程更能深入理解功能適用場景。vi / Vim的周邊信息,如vi / Vim的名家名言,各個變種, vi / Emacs的文化等等Vim | 中文譯文Vim方方面面資料匯總。 Vim配置/插件的資源spf13-vim - a distribution of Vim Vim配置集合和配置框架。spf13-vim首先是個Vim配置框架,水準盡顯!vimrc - Over the last 10 years, I have used and tweaked Vim.Vim配置上的積累,絕對值得參考學習!Janus : Vim DistributionVim配置版本!Vim 、 tmux和iTerm 2的整套配置。Vim + Emacs distribution(本人沒有入Emacs圈子,作為廣度了解一下)spacemacs - A community-driven Emacs distribution - The best editor is neither Emacs nor Vim , it's Emacs and Vim !star數也可見一斑!另外還要注意,相比spf13-vim (2010-04-20新建的倉庫), spacemacs出來時間還更短(2012-12-17新建的倉庫)SpaceVim - A community-driven vim distribution inspired by spacemacs !Vim Awesome - a comprehensive, accurate, and up-to-date directory of Vim plugins, Vim插件瀏覽站點YCMYCM Youtube視頻地址,講解了入門Vim時
Vim是個持續的過程,可以不斷提高能力,進而逐步提升效率。Vim !因為工作緊急需要的效率與Vim剛開始學習時摸索的低效有矛盾!Vim命令記憶法還給出實用的Tips:
Hack (定制)你的鍵盤Seil修改Caplock鍵成ECS鍵karabiner修改鍵盤重複前延遲和加速重複頻率,以快速地在Vim中導航.vimrc - 你的新朋友!dotfiles ),或是藉鑑https://github.com/thoughtbot/dotfilesvimtutor定期適量的學習/ 通過遊戲http://vim-adventures.com/來學習~ Youtube視頻地址,2007-02-13, Vim作者Brian Moolenaar在Google做的演講,講解了編輯器的選擇、達到高效編輯的方法和理念。
Vim比Emacs更好』這個問題,但你可能會覺得Emacs並不爽~ ?Notepad這樣簡陋的編輯器,你浪費了大量的生命! ?Vim吧~ ? 除此再沒有其它的出路! ( There is NO other RULE! ) 這部分的總結頁:
附原文:
@oldratlee 這是我最喜歡的一節?
附原文:
How not to edit effectively
歡迎高手指點!請提交Issue。
Vim便利切換的問題問題說明:
本來Vim是有模式的( Normal/Command/Insert/Replace/Visual/... ),再加上中文需要輸入法切換(你處在中文輸入還是英文輸入狀態),中文編輯需要在腦子記住當前是哪個狀態的,個人覺得這很蛋疼。
理想的狀態期望:
Normal/Command模式時,自動切換到英文輸入法。Insert模式時,還原文字輸入時所用的輸入法狀態(中文輸入/英文輸入)。解決方法:
解法參見@CodeFalling的完美解決Mac下Vim/Emacs的輸入法切換問題:
fcitx-remote-for-osxVim插件fcitx-vim-osx PS: Thanks for your PERFECT works! @CodeFalling
Vim打開文件亂碼問題問題說明:
Vim打開文件是亂碼,常見的原因是編碼識別錯誤。
解決方法:
可以在.vimrc配置文件中設置好Vim的用於嘗試識別的編碼序列,依次使用序列中的編碼直到這個編碼可以正確顯示文件中的字符:
" 需要配置到 .vimrc 中
set fileencodings = ucs - bom,utf - 8 ,gb18030,utf - 16 le,big5,euc - jp,euc - kr,latin1如果仍然識別成亂碼(比如文件包含多種編碼的字符,一定會有亂碼),可以在命令模式顯式指定編碼重新打開文件,命令如下:
" 用UTF8编码重新打开加载当前文件
: e ++ enc = utf - 8
" 用GBK编码重新加载
: e ++ enc = gbk
" GB18030字符集是GBK的超集,为了方便键入使用GBK名
" 可以进一步在 .vimrc 中配置Mapping,省得繁琐的键入
nnoremap <Leader> eu :e ++enc=utf-8 <CR>
nnoremap <Leader> eg :e ++enc=gb18030 <CR>更多原因解析和處理方法參見@滇狐的文章VIM文件編碼識別與亂碼處理,講得深入淺出、鞭辟入裡!
PS:
像Vim一樣,字符編碼也是一個很具計算機風味的話題,這裡不解釋,如果不清楚可以自己搜索研究一下。
問題說明:
如題。
解決方法:
" 设置写文件时使用UTF8编码
: set fileencoding = utf - 8
" 写文件(完成文件编码转换)
: w
" 为了方便键入,使用短选项名fenc并写成一行
: se fenc = utf8 | w
" 文件转换成GBK编码
: se fenc = gbk | w
" GB18030字符集是GBK的超集,为了方便键入使用GBK名
" 可以进一步在 .vimrc 中配置Mapping,省得繁琐的键入
nnoremap <Leader> eU :set fileencoding=utf-8 | w <CR>
nnoremap <Leader> eG :set fileencoding=gb18030 | w <CR>參考資料: How can I change a file's encoding with vim? - vi.stackexchange.com
Vim字體設置問題說明:
合適字體可以方便識別,提高效率和心情,不能說不重要! ?
Vim命令,字體由終端配置。GUI Vim由Vim自己來配置。 Mac下,終端常用的是iTerm / terminal應用, GUI Vim用的是MacVim應用。
解決方法:
詳見單獨一頁的說明:設置Vim字體。
Vim Map問題說明:
下面的場景下,會想查看所有的Vim Map :
Vim可以定制自己命令,為了不重寫已有的快捷鍵( Map )Map了解決方法:
redir > map .txt | silent map | redir END
" 如果文件已经存在加上!来覆盖输出的文件
redir ! > map .txt | silent map | redir ENDcrontab -e修改失敗問題說明:
crontab修改後,報crontab: temp file must be edited in place出錯信息, crontab沒有修改。
$ crontab -e
# ... I do my thing in vim & :wq
" crontab.9ZcXiFaawt " 6L, 203C written
crontab: temp file must be edited in place解決方法:
在.vimrc配置文件中設置,對於crontab文件不使用備份文件:
" 需要配置到 .vimrc 中
autocmd BufNewFile , BufRead crontab.* set nobackup | set nowritebackup更多說明參見:
Vim中文分詞支持的問題問題說明:
不像英文,中文的詞的分離沒有像空格這樣明顯分隔,詞相關的移動變得很麻煩。
解決方法:
目前還沒有找到解法。總得來說,這個問題不大,可以替代的做法:
Hack /加速系統的按鍵重複後,可以簡單地用hjkl在小/大範圍內快速導航。CTRL-D/CTRL-F )。fz/Fz/tz/Tzn/N Vim分詞的相關資源
Vim與中文分詞- google groupVim模式下能增加中文分詞的支持麼?Vim&Emacs的中文分詞相關討論