vim的命令模式下,對於頻繁使用的複雜命令, 應該怎麼簡化? 是不是設計快捷鍵就可以了?
本人常常使用一個替換指令 :0,$s/t/ /g 就是將tab鍵替換成4個空格.
對於新建的檔案, 本人已經在設定檔中做了設定. 只是別人的檔案經常出現tab鍵.
每次都要替換一下.
對於vim設定快捷鍵,我還不太熟悉, 可以用快捷鍵嗎? 怎麼設定? 用快捷鍵替換:0,$s/t/ /g 常用命令
可不可以,在vim開啟檔案的時候,自動轉換, 這樣連快捷鍵都不用設定了?
首先感謝下面的回答者, 我是在他們給的解釋上, 閱讀幫助文檔, 最後得出的個人覺得合理的方法
#快捷鍵肯定是可以的, 但是需要記住快捷鍵. 對於我目前的問題, 我選擇自動轉換比較好.
首先:help ret
查看文件, 這裡我想說的是, 替換的時候, 小心替換程式中字串中的\\t
字元
:help auto
看文件, 不多說了.
#查看.vimrc檔, vimrc檔中, 已經有了if has("autocmd")
部分, 把對應的指令寫在一起就可以了.
#autocmd BufRead *.cpp,*.h :ret
這個自動替換指令, BufRead和BufReadPost是一樣的. 這裡要注意一下:模式選項,最好不要用*,具體替換什麼類型的文件, 將後綴寫出來.防止其他格式文件的誤替換.
#這個替換指令,只是替換Buf快取中的內容, 如果沒有修改, 沒有儲存. 是不會寫入的. 直接退出的話, 沒有任何修改的話, vim不會提示你儲存, tab鍵依然存在. 這不傷大雅.
#最後,再次感謝下面的回答者.新年快樂.
先來拋磚引玉:
既然你已經有了操作,那麼為這個操作設定一個快捷鍵是很簡單的,例如這樣將這個快捷鍵設定為 normal mode 下的
<Leader>ts
--nnoremap <Leader>ts :0,$s/t/ /g<CR>
, 大概是希望快捷键映射的模式 快捷键 操作
。第二個可以使用
autocmd BufRead * :%ret! 4<CR>
, 将整个文件的 tab 转换成 space,每个 tab 用 4 个 space 替代. ret 指的是 replace tab, 更多内容可以:help ret
,:help autocmd
,:help event
,:help BufRead
.vim 有一個指令叫做
:retab
(我有可能記錯了,但應該差不離),可以轉換 tab 為 space,你可以查閱一下相關的 help,經常使用的話可以把它綁定一個按鍵。世界上最牛的編輯器: Vim 1 (原始動圖示範所有範例) http://www.imooc.com/article/...
完全可以自訂快捷鍵, 只需要玩好.vimrc 就可以了