搜尋

首頁  >  問答  >  主體

vim 如何簡化 頻繁使用的指令

問題描述

vim的命令模式下,對於頻繁使用的複雜命令, 應該怎麼簡化? 是不是設計快捷鍵就可以了?

本人常常使用一個替換指令 :0,$s/t/ /g 就是將tab鍵替換成4個空格.

對於新建的檔案, 本人已經在設定檔中做了設定. 只是別人的檔案經常出現tab鍵.

每次都要替換一下.

我的問題

  1. 對於vim設定快捷鍵,我還不太熟悉, 可以用快捷鍵嗎? 怎麼設定?​​ 用快捷鍵替換:0,$s/t/ /g 常用命令

  2. 可不可以,在vim開啟檔案的時候,自動轉換, 這樣連快捷鍵都不用設定了?

解決方法

首先感謝下面的回答者, 我是在他們給的解釋上, 閱讀幫助文檔, 最後得出的個人覺得合理的方法

  1. #快捷鍵肯定是可以的, 但是需要記住快捷鍵. 對於我目前的問題, 我選擇自動轉換比較好.

  2. 首先:help ret 查看文件, 這裡我想說的是, 替換的時候, 小心替換程式中字串中的\\t字元

  3. :help auto 看文件, 不多說了.

  4. #查看.vimrc檔, vimrc檔中, 已經有了if has("autocmd")部分, 把對應的指令寫在一起就可以了.

  5. #autocmd BufRead *.cpp,*.h :ret這個自動替換指令, BufRead和BufReadPost是一樣的. 這裡要注意一下:模式選項,最好不要用*,具體替換什麼類型的文件, 將後綴寫出來.防止其他格式文件的誤替換.

  6. #這個替換指令,只是替換Buf快取中的內容, 如果沒有修改, 沒有儲存. 是不會寫入的. 直接退出的話, 沒有任何修改的話, vim不會提示你儲存, tab鍵依然存在. 這不傷大雅.

#最後,再次感謝下面的回答者.新年快樂.

伊谢尔伦伊谢尔伦2743 天前638

全部回覆(4)我來回復

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-16 16:36:21

    先來拋磚引玉:

    1. 既然你已經有了操作,那麼為這個操作設定一個快捷鍵是很簡單的,例如這樣將這個快捷鍵設定為 normal mode 下的 <Leader>ts -- nnoremap <Leader>ts :0,$s/t/ /g<CR>, 大概是 希望快捷键映射的模式 快捷键 操作

    2. 第二個可以使用 autocmd BufRead * :%ret! 4<CR>, 将整个文件的 tab 转换成 space,每个 tab 用 4 个 space 替代. ret 指的是 replace tab, 更多内容可以 :help ret, :help autocmd, :help event, :help BufRead.

    回覆
    0
  • ringa_lee

    ringa_lee2017-05-16 16:36:21

    vim 有一個指令叫做 :retab (我有可能記錯了,但應該差不離),可以轉換 tab 為 space,你可以查閱一下相關的 help,經常使用的話可以把它綁定一個按鍵。

    回覆
    0
  • 大家讲道理

    大家讲道理2017-05-16 16:36:21

    世界上最牛的編輯器: Vim 1 (原始動圖示範所有範例) http://www.imooc.com/article/...

    回覆
    0
  • 習慣沉默

    習慣沉默2017-05-16 16:36:21

    完全可以自訂快捷鍵, 只需要玩好.vimrc 就可以了

    回覆
    0
  • 取消回覆