很多初學者啟動vim后,不知道怎么輸入字符:按了半天字母,結果屏幕還是空的。
vim和記事本或WORD不一樣,不是一打開后就可以輸入文字,此時它處于正常模式。
vim一共有4個模式:
- 正常模式 (Normal-mode)?
- 插入模式 (Insert-mode)
- 命令模式 (Command-mode)
- 可視模式 (Visual-mode)
?
注意:方向鍵(上下左右那幾個)可以在vim屏幕里跳來跳去。現在知道這個對
體驗以下的模式有用。但是,通過方向箭來移動,是一個笨辦法。。。講到正常
模式時會說到更好的方法(我不會現在就告訴你h,j,k,l鍵分別對應左,下,上,右的:D)
正常模式
正常模式一般用于瀏覽文件,也包括一些復制、粘貼、刪除等操作。這時擊鍵時,
一般的鍵/鍵組合會被當成功能鍵,而不會鍵入對應的字符。
在這個模式下,我們可能通過鍵盤在文本中跳來跳去,跳動的范圍從小到大是字符、
單詞、行、句子、段落和屏幕。
啟動vim后默認位于正常模式。不論位于什么模式,按下<Esc>鍵(有時需要按兩下)
都會進入正常模式。
插入模式
在正常模式中按下i, I, a, A等鍵(后面系列文章會詳細介紹),會進入插入模式。
現在只用記住按i鍵會進行插入模式。插入模式中,擊鍵時會寫入相應的字符。
?
命令模式
在正常模式中,按下:(冒號)鍵,會進入命令模式。在命令模式中可以執行
一些輸入并執行一些vim或插件提供的指令,就像在shell里一樣。這些指令包括
設置環境、文件操作、調用某個功能等等。
?
可視模式
在正常模式按下v, V, <Ctrl>+v,可以進入可視模式。可視模式中的
操作有點像拿鼠標進行操作,選擇文本的時候有一種鼠標選擇的即視感,有時候
會很方便。
?
根據需要靈活快速的切換各種模式非常有用。
配置回到正常模式的快捷鍵
由于不論在其他什么模式下,按一次或兩次<Esc>鍵都可以回到正常模式,我們
可以想見,<Esc>鍵會經常用到。由于<Esc>鍵在標準qwert鍵盤的左上角,對
于左手小指不靈活的朋友來說,按起來比較不方便(我就是如此),因此在上一篇
中我們通過配置.vimrc把<Esc>映射成了按兩下j鍵。
" 將ESC鍵映射為兩次j鍵 inoremap jj <Esc>
j鍵正好在右手食指的基本鍵位上(一般上面還有個突起),用起來十分方便。
如果只讓我保留一個vim設置的話,我會選擇保留它。
?
--------------------------------------------------------------------------------
在命令模式中,連按兩次大寫字母Z,若當前編輯的文件曾被修改過,則Vi保存該文件后退出,返回到shell;若當前編輯的文件沒被修改過,則Vi直接退出,?? 返回到shell。???
? 在末行模式下,輸入命令???
? :w?
? Vi保存當前編輯文件,但并不退出,而是繼續等待用戶輸入命令。在使用w命令時,可以再給編輯文件起一個新的文件名。
? [例6]???
? :w?? newfile?
? 此時Vi將把當前文件的內容保存到指定的newfile中,而原有文件保持不變。若newfile是一個已存在的文件,則Vi在顯示窗口的狀態行給出提示信息:?
? File?? exists?? (use?? !?? to?? override)?
? 此時,若用戶真的希望用文件的當前內容替換newfile中原有內容,可使用命令?
? :w!?? newfile?
? 否則可選擇另外的文件名來保存當前文件。?
? 在末行模式下,輸入命令???
? :q?
? 系統退出Vi返回到shell。若在用此命令退出Vi時,編輯文件沒有被保存,則Vi在顯示窗口的最末行顯示如下信息:?
? No?? write?? since?? last?? change?? (use?? !?? to?? overrides)?
? 提示用戶該文件被修改后沒有保存,然后Vi并不退出,繼續等待用戶命令。若用戶就是不想保存被修改后的文件而要強行退出Vi時,可使用命令?
? :q!?
? Vi放棄所作修改而直接退到shell下。?
? 在末行模式下,輸入命令???
? :wq?
? Vi將先保存文件,然后退出Vi返回到shell。?
? 在末行模式下,輸入命令???
? :x?
? 該命令的功能同命令模式下的ZZ命令功能相同
-------------------------------------------------------------------------------
?
參考原文鏈接:https://www.cnblogs.com/zzqcn/p/4619012.html
?
寫博客是為了記住自己容易忘記的東西,另外也是對自己工作的總結,文章可以轉載,無需版權。希望盡自己的努力,做到更好,大家一起努力進步!
如果有什么問題,歡迎大家一起探討,代碼如有問題,歡迎各位大神指正!