vim技巧:在插入模式下直接執行命令,快速轉換大小寫

本篇文章介紹 vim 的一些使用技巧:vim

  • 在插入模式下直接執行命令
  • 快速轉換大小寫

在插入模式下直接執行命令

在 vim 的插入模式下編輯文件,可能臨時須要執行某個命令來完成一些操做,例如要跳轉到第 100 行進行編輯。常見的作法是,按 Esc 鍵退出插入模式,執行 100G 命令跳轉光標到第 100 行,再按 i 命令從新進入插入模式,開始編輯。this

其實,有一個更快的方法是,在插入模式下,按 CTRL-O 鍵,以後就能夠輸入普通模式的命令,按回車執行該命令。執行命令後,仍是保持在插入模式下。code

注意:CTRL-O 鍵指的是同時按下 CTRL 鍵和小寫字母 o 鍵,不須要按 Shift 鍵。orm

在插入模式按下 CTRL-O 鍵後,能夠執行不帶冒號的命令,例如執行 100G 命令跳轉光標到第 100 行。也能夠執行帶冒號的命令,例如執行 :100 命令跳轉光標到第 100 行。it

具體能夠查看 :help usr_24Normal mode commands 小節,部分說明以下:io

With CTRL-O {command} you can execute any Normal
mode command from Insert mode.  For example,
to delete from the cursor to the end of the line:  

        CTRL-O D

You can execute only one Normal mode command this way.

也能夠查看 :help i_CTRL-o 的說明,具體描述以下:table

CTRL-O        execute one command, return to Insert mode   *i_CTRL-O*

即,CTRL-O 能夠在插入模式下執行一個命令,執行以後仍是保持在插入模式下。技巧

快速轉換大小寫

在 vim 中,有不少命令能夠用於快速轉換大小寫。查看 :help case 的說明,就會看到全部能夠轉換大小寫的命令。下面對經常使用的幾個命令進行說明。command

把大寫轉換成小寫

使用 gu{motion} 命令把 {motion} 選中的文本轉換爲小寫。{motion} 能夠是 vim 任意移動光標的操做。部分操做舉例說明以下。方法

  • guw
    後面的 w 表示把光標移動到下一個單詞開頭。guw 會把光標下的字符、以及直到當前單詞末尾的字符都轉換成小寫。可是光標保持不動。
    若是光標在單詞開頭,就是轉換整個單詞成小寫。
    若是光標在單詞前面的空白字符,不會進行轉換。
  • gu3w
    後面的 3w 表示把光標移動到後面第三個單詞開頭。gu3w 會把光標下的字符、以及直到後面第二個單詞末尾的字符都轉換成小寫。可是光標保持不動。
    3 能夠換成其餘數字。後面提到的其餘移動光標操做也能夠加上數字來指定要重複多少次操做。
  • gue
    後面的 e 表示把光標移動到下一個單詞末尾。gue 會把光標下的字符、以及直到當前單詞末尾的字符都轉換成小寫。可是光標保持不動。
    若是光標在單詞開頭,就是轉換整個單詞成小寫。
    若是光標在單詞前面的空白字符,也會進行轉換。這是 gue 和 guw 最大的區別。
  • gu$
    後面的 $ 表示把光標移動到行末。gu$ 會把光標下的字符、以及直到當前行末尾的字符都轉換成小寫。可是光標保持不動。
    若是光標在行首,就是轉換整行成小寫。

使用 guu 命令把光標所在行都轉換成小寫。

注意guu 的最後一個 u 不是前面提到的 {motion} 操做。gu{motion} 執行的是 gu 命令,{motion} 是移動光標的操做。而這裏的 guu 就是完整的命令。

使用 vV、或者 CTRL-V 命令進入可視模式,選中部份內容後,輸入 u 則把選中的內容都轉換成小寫。

把小寫轉換成大寫

使用 gU{motion} 命令把 {motion} 選中的文本轉換爲大寫。{motion} 能夠是 vim 任意移動光標的操做。上面已經有部分說明。

使用 gUU 命令把光標所在行都轉換成大寫。

使用 vV、或者 CTRL-V 命令進入可視模式,選中部份內容後,輸入 U 則把選中的內容都轉換成大寫。

切換大小寫

能夠使用下面命令來切換大小寫,也就是把大寫轉成小寫,把小寫轉成大寫。

  • ~
    會切換光標下字符的大小寫。若是光標下的字符是小寫,則轉換成大寫。若是光標下的字符是大寫,則轉換成小寫。光標會往前移動一個字符。
  • 3~
    切換光標下的字符、以及後面兩個字符的大小寫。能夠把 3 換成其餘數字,切換指定數目字符的大小寫。光標會往前移動三個字符。
  • g~~
    會切換光標所在行的大小寫。當前行的全部大寫字符會被轉換成小寫,全部小寫字符會被轉換成大寫。光標會移動行首的第一個非空白字符上。

總結

用列表形式總結經常使用的轉換大小寫命令以下。

命令 含義
guw 若是光標在單詞開頭,會轉換整個單詞成小寫
gUw 若是光標在單詞開頭,會轉換整個單詞成大寫
guu 把光標所在行都轉換成小寫
gUU 把光標所在行都轉換成大寫
{Visual}u 把可視模式選中的內容都轉換成小寫
{Visual}U 把可視模式選中的內容都轉換成大寫
~ 切換光標下字符的大小寫
g~~ 切換光標所在行的大小寫
相關文章
相關標籤/搜索