Vim 文本編輯器的基本使用
Vim文本編輯器是Linux/Unix系統下最常用的工具之一,通過該工具可以很方便的建立、修改、編輯文檔或者程序文件,其作用類似與windows系統下的記事本或者notepad++,因此熟練掌握該工具的使用對於使用linux系統是非常有必要的。通過本文記錄Vim編輯器的基本使用方法,用以強化記憶或者以備以後復習。(cat與<<EOF結合也可以實現編輯器的部分功能,可以生成和編輯文檔:cat >log.txt <<EOF)
主要參考資料有:
1.《鳥哥的Linux私房菜》
2.《Linux就該這麽學》
3.速成Vim https://learnxinyminutes.com/docs/zh-cn/vim-cn/
4.菜鳥教程 http://www.runoob.com/linux/linux-vim.html
5.其他互聯網資料,google,baidu等搜索引擎
一、Vim 編輯器的三種模式
基本上 vi/vim 共分為三種模式,分別是命令模式(Command mode),輸入模式(Insert mode)和底線命令模式(Last line mode)。 (1)命令模式:
用戶剛剛啟動 vi/vim,便進入了命令模式。
此狀態下敲擊鍵盤動作會被Vim識別為命令,而非輸入字符。比如我們此時按下 i,並不會輸入一個字符,i 被當作了一個命令。
以下是常用的幾個命令:
- i 切換到輸入模式,以輸入字符。
- x 刪除當前光標所在處的字符。
- : 切換到底線命令模式,以在最底一行輸入命令。
- u 撤銷
- ctrl+r 回復撤銷
命令模式只有一些最基本的命令,因此仍要依靠底線命令模式輸入更多命令。 (2)輸入模式:
在命令模式下按下i就進入了輸入模式。
在輸入模式中,可以使用以下按鍵:
- 字符按鍵以及Shift組合,輸入字符
- ENTER,回車鍵,換行
- BACK SPACE,退格鍵,刪除光標前一個字符
- DEL,刪除鍵,刪除光標後一個字符
- 方向鍵,在文本中移動光標
- HOME/END,移動光標到行首/行尾
- Page Up/Page Down,上/下翻頁
- Insert,切換光標為輸入/替換模式,光標將變成豎線/下劃線
- ESC,退出輸入模式,切換到命令模式
在命令模式下按下:(英文冒號)就進入了底線命令模式。
底線命令模式可以輸入單個或多個字符的命令,可用的命令非常多。
在底線命令模式中,基本的命令有(已經省略了冒號):
- q 退出程序
- q!強制退出
- w 保存文件
- wq filename:保存為指定文件名並退出
按ESC鍵可隨時退出底線命令模式。
簡單的說,我們可以將這三個模式想成底下的圖標來表示:
二、Vim的基本命令操作
Vim 導航基礎
vim <filename> # 在 Vim 中打開 <filename> :q # 退出 Vim :w # 保存當前文件 :wq # 保存文件並退出 Vim :q! # 退出 Vim 並且不保存文件 # ! *強制* 執行 :q, 因此沒有保存就退出 Vim :x # 保存文件並且退出 Vim, 是 :wq 的簡寫版本 u # 撤銷 CTRL+R # 重做 h # 左移一個字符 j # 下移一行 k # 上移一行 l # 右移一個字符 # 在行內移動 0 # 移到行首 $ # 移到行尾 ^ # 移到行內的第一個非空白字符處 # 在文本中查找 /word # 光標之後的所有該詞都高亮顯示 ?word # 光標之前的所有該詞都高亮顯示 n # 查找後將光標移到該詞的下一個出現位置 N # 光標移到該詞的上一個出現位置 :%s/foo/bar/g # 將文件每一行上的所有 ‘foo‘ 都改成 ‘bar‘ :s/foo/bar/g # 將當前行上的所有 ‘foo‘ 都改成 ‘bar‘ # 跳到字符處 f<字符> # 向前跳移到 <字符> 上 t<字符> # 向前跳移到 <字符> 的左側 # 例如, f< # 向前跳移到 < 上 t< # 向前跳移到 < 的左側 # 按詞移動 # 默認一個單詞由字母,數字和下劃線組成 w # 移動到下一個詞首 b # 移動到前一個詞首 e # 移動到下一個詞尾 # 移動的其它命令 gg # 移到文件頂部 G # 移到文件末尾 :NUM # 移到第 NUM 行 (NUM 是任意數字) H # 移到屏幕頂部 M # 移到屏幕中間位置 L # 移到屏幕末尾
模式:
Vim 基於 模式 這個概念。
命令模式 - Vim 啟動後就處於這個模式,用於導航和操作命令 插入模式 - 用於在你的文件中進行修改 可視模式 - 用於高亮文本並對它們進行操作 Ex 模式 - 用於跳到底部的 ‘:’ 提示行上輸入命令
i # 在光標位置前,將 Vim 切換到插入模式 a # 在光標位置後,將 Vim 切換到插入模式 v # 將 Vim 切換到可視模式 : # 將 Vim 切換到 ex 模式 <esc> # 無論你當前處於什麽模式,都返回到命令模式 # 復制和粘貼文本 y # 復制所選的內容 yy # 復制當前行 d # 刪除所選的內容 dd # 刪除當前行 p # 在當前光標位置後粘貼復制的文本 P # 在當前光標位置前粘貼復制的文本 x # 刪除當前光標位置處的字符
Vim 的 ‘語法’
Vim 可以被認為是按 ‘動詞-修飾詞-名詞’ 格式編排的一組命令:
動詞 - 你的動作 修飾詞 - 你如何執行你的動作 名詞 - 你的動作所作用於的對象
關於 ‘動詞‘,‘修飾詞‘,和 ‘名詞’ 的幾個重要例子:
# ‘動詞‘ d # 刪除 c # 修改 y # 復制 v # 可視化選擇 # ‘修飾詞‘ i # 內部的 a # 周圍的 NUM # 數字 (NUM 是任意數字) f # 查找文本並位於其上 t # 查找文本並停於其前面 / # 從光標處開始查找字符串 ? # 在光標前查找字符串 # ‘名詞‘ w # 詞 s # 句子 p # 段落 b # 塊 # 示例 ‘語句‘ 或命令 d2w # 刪除 2 個詞 cis # 修改段落內的內容 yip # 復制段落內的內容 (復制你所在的段落) ct< # 修改直到括號開啟處 # 對你的當前位置直到下個括號開啟處的內容進行修改 d$ # 刪除直到行尾
一些快捷鍵和技巧
<!--TODO: Add more!--> > # 將所選內容縮進一級 < # 將所選內容取消縮進一級 :earlier 15m # 將文檔還原到 15 分鐘前的狀態 :later 15m # 逆轉上述命令 ddp # 相鄰行交換位置,先 dd 再 p . # 重復之前動作
宏
宏基本上來說就是可錄制的動作。 當你開始錄制宏時,它會記錄你使用的 每個 動作和命令, 直到你停止錄制。當調用宏時,它會將這個完全相同的動作和命令序列 再次應用於所選文本之上。
qa # 開始錄制一個叫 ‘a‘ 的宏 q # 停止錄制 @a # 重播宏
配置 ~/.vimrc
.vimrc 可用於在啟動時對 Vim 進行配置。
這裏是一個示例 ~/.vimrc 文件:
" 示例 ~/.vimrc " 2015.10 " 需要 Vim iMproved 版本 set nocompatible " 根據文件名檢測文件類型,以便能進行智能自動縮進等操作。 filetype indent plugin on " 開啟語法高亮 syntax on " 更好的命令行補全 set wildmenu " 除了當使用大寫字母時使用大小寫無關查找 set ignorecase set smartcase " 當新開一行時,如果沒有開啟文件特定的縮進規則, " 則縮進保持與你當前行一致 set autoindent " 在左側顯示行號 set number " 縮進選項,根據個人偏好進行修改 " 每個 TAB 的可視空格數 set tabstop=4 " 編輯時 TAB 對應的空格數 set softtabstop=4 " 當使用縮進操作 (>> 和 <<) 時縮進的空格數 set shiftwidth=4 " 將 TAB 轉換成空格 set expandtab " 為縮進和對齊開啟智能化的 TAB 和空格切換功能 set smarttab
2018-04-27 22:36:47 於南京仙林亞東城
Vim 文本編輯器的基本使用