vim超实用指南收藏这一篇就够了
vim是一個Unix文本編輯器,它以快速高效而聞名,是在終端中運行的小應用程序(當然也有圖形界面),它最主要的特點是完全可以通過鍵盤控制,而不需要菜單欄或鼠標。
例如,將文本插入到文件中,按i鍵并輸入。瀏覽文本或輸入命令,在鍵盤上按Esc,然后按下對應的任何鍵或組合鍵。對于大多數人來說,是一種非常不尋常的文本編輯方式,但這是基于Linux環境工作的開發者編輯配置文件、更改腳本、編寫代碼等操作的主流方式。
本文將介紹一些必要的基本命令,以供大家很快很容易地掌握vim編輯器。建議初學者在使用中進行學習,而不是只看不動手。不實戰操作,那你可能很快忘記這些命令。
使用vim打開文件后,一般會用到三種模式:命令模式(command mode)、輸入模式(insert mode)和底行命令模式(last line mode)。剛啟動vim時,默認進入命令模式。這時候,我們敲打鍵盤的字母會被識別為不同的命令。如方向鍵h、j、k、l;輸入鍵i、a、o,切換到輸入模式;冒號鍵:,切換到底行命令模式。
進入輸入模式,可以任意的碼入字母、符號,按esc鍵退出到命令模式。在底行命令模式,可以輸入單個或者多個命令,按enter鍵結束運行。
1、vim的進入和退出:vi、vim、:q、:q!、:wq在terminal中直接敲vi或vim打開文本
:q?退出文件
:q!?強制退出文件,丟棄你所做的任何改動
:wq保存修改,然后退出文件
2、移動光標:h、j、k、l鍵h左移、l右移、j下移、k上移,熟練使用hjkl鍵,習慣之后我們能很快地在屏幕四處移動光標。
3、插入、刪除和撤銷:i、A、x、u鍵、ctrl+r
在command模式下:按下i鍵可以進入insert模式,在光標后插入文字,輸入完成按esc鍵(A鍵,光標移動到本行末輸入);按下x鍵可以刪除光標所在位置的字符;按下u鍵可以撤銷操作,回到上一步。ctrl+r撤銷掉撤銷命令。按下esc鍵會回到command模式或者撤銷一個不想輸入或部分完整的命令。
4、刪除類命令:dw、d$、dd
dw從光標處刪除至一個單詞的末尾
d$從光標處刪除至本行末尾
dd?刪除光標所在行
5、在動作前輸入數字會使操作重復那么多次3dd?執行三次光標所在行,即往下刪除三行
2w?使光標向前移動兩個單詞
0?移動到光標的行首
6、關于定位和文件狀態gg?跳到文件第一行G / shift+g?跳到文件最后一行ctrl+g?顯示當前編輯文件名和文件中光標位置gf 進入光標所在位置路徑的文件
7、關于搜索命令/?加上字符串可以用于在當前文件中查找該字符串?用于反向查找
例如:/error <回車>即可在文件中查找errorn鍵向下繼續搜索,N鍵或shift+n鍵向上繼續搜索(shift+小寫=大寫)
8、替換命令:s/old/new/g?g是全局進行匹配多種操作需要多加學習應用
9、在vim內執行外部命令輸入:!?然后輸入外部命令即可執行該外部命令所有的:命令都必須以敲回車鍵結束
10、使用操作符y復制文本,使用p粘貼文本
配合可視模式使用多行操作是經常會用到的,切記!
11、set設置一些選項:set xxx 可以設置 xxx 選項。一些有用的選項如下:'ic' 'ignorecase' 查找時忽略字母大小寫'is' 'incsearch' 查找短語時顯示部分匹配'hls' 'hlsearch' 高亮顯示所有的匹配短語
12、獲取在線系統幫助
如下三種方法:- 按下 <HELP> 鍵 (如果鍵盤上有的話)- 按下 <F1> 鍵 (如果鍵盤上有的話)- 輸入 :help <回車>
13、啟用更多的vim的特性Vim 的功能特性要比 Vi 多得多,但其中大部分都缺省沒有啟用。為了使用更多的特性,需要創建一個vimrc文件。
1. 開始編輯 vimrc 文件,具體命令取決于所用的操作系統::edit ~/.vimrc 這是 Unix 系統所使用的命令:edit $VIM/_vimrc 這是 MS-Windows 系統所使用的命令
2. 接著讀取 vimrc 示例文件的內容::r $VIMRUNTIME/vimrc_example.vim
3. 保存文件,命令為::write
下次啟動 Vim 時,編輯器就會有了語法高亮的功能。 可以把喜歡的各種設置添加到這個 vimrc 文件中。 要了解更多信息請輸入 :help vimrc-intro
14、使用<tab>鍵進行命令行補全
補全對于許多命令都有效,當輸入: 命令時,tab鍵可以匹配補全。
15、vim自帶了一個教程說明,我們可以直接輸入vimtutor,打開教程做相應的練習即可。
全局
- :h[elp] 關鍵字 - 打開關鍵字幫助
- :sav[eas] 文件名 - 另存為
- :clo[se] - 關閉當前窗口
- :ter[minal] - 打開一個shell窗口
- K - 打開光標所在單詞的man頁面
移動光標
- h - 左移光標
- j - 下移光標
- k - 上移光標
- l - 右移光標
- H - 移動到當前頁面頂部
- M - 移動到當前頁面中間
- L - 移動到當前頁面底部
- w - 移動到下個單詞開頭
- W - 移動到下個單詞開頭(單詞含標點)
- e - 移動到下個單詞結尾
- E - 移動到下個單詞結尾(單詞含標點)
- b - 移動到上個單詞開頭
- B - 移動到上個單詞開頭(單詞含標點)
- ge - 移動到上個單詞結尾
- gE - 移動到上個單詞結尾(單詞含標點)
- % - 跳轉到配對的符號(默認支持的配對符號組:: '()', '{}', '[]' - 在vim中使用 :h matchpairs 獲得更多信息)
- 0 - 移動到行首
- ^ - 移動到行首的非空白符
- $ - 移動到行尾
- g_ - 移動到行內最后一個非空白符
- gg - 移動到文件第一行
- G - 移動到文件最后一行
- 5gg or 5G - 移動到第五行
- gd - 跳轉到局部定義
- gD - 跳轉到全局定義
- fx - 移動到字符 x 下次出現的位置
- tx - 移動到字符 x 下次出現的位置的前一個字符
- Fx - 移動到字符 x 上次出現的位置
- Tx - 移動到字符 x 上次出現的位置的后一個字符
- ; - 重復之前的f、t、F、T操作
- , - 反向重復之前的f、t、F、T操作
- } - 移動到下一個段落 (當編輯代碼時則為函數/代碼塊)
- { - 移動到上一個段落 (當編輯代碼時則為函數/代碼塊)
- zz - 移動屏幕使光標居中
- Ctrl + e - 向下移動屏幕一行(保持光標不動)
- Ctrl + y - 向上移動屏幕一行(保持光標不動)
- Ctrl + b - 向上滾動一屏
- Ctrl + f - 向下滾動一屏
- Ctrl + d - 向下滾動半屏
- Ctrl + u - 向上滾動半屏
插入模式 - 插入/追加文本
- i - 從光標前開始插入字符
- I - 從行首開始插入字符
- a - 從光標后開始插入字符
- A - 從行尾開始插入字符
- o - 在當前行之下另起一行, 開始插入字符
- O - 在當前行之上另起一行, 開始插入字符
- ea - 從當前單詞末尾開始插入
- Ctrl + h - 在插入模式下,刪除光標前的字符
- Ctrl + w - 在插入模式下,刪除光標前的單詞
- Ctrl + j - 在插入模式下,另起一行
- Ctrl + t - 在插入模式下,向右縮進,寬度由 shiftwidth 控制
- Ctrl + d - 在插入模式下,向左縮進,寬度由 shiftwidth 控制
- Ctrl + n - 在插入模式下,在光標之前插入自動補全的下一個匹配項
- Ctrl + p - 在插入模式下,在光標之前插入自動補全的上一個匹配項
- Ctrl + rx - 插入寄存器 x 的內容
- Ctrl + ox - 暫時進入正常模式以發出一個正常模式命令 x。
- Esc - 退出插入模式
編輯文本
- r - 替換當前字符
- R - 在 ESC 按下之前,替換多個字符
- J - 將下一行合并到當前行, 并在兩部分文本之間插入一個空格
- gJ - 將下一行合并到當前行, 兩部分文本之間不含空格
- gwip - 重新調整段落
- g~ - switch case up to motion
- gu - 小寫操作修飾符
- gU - 大寫操作修飾符
- cc - 將光標所在的行刪除, 然后進入插入模式
- C - 將光標處到行尾刪除, 然后進入插入模式
- c$ - 將光標處到行尾刪除, 然后進入插入模式
- ciw - 將光標所在的單詞刪除, 然后進入插入模式
- cw or ce - 從光標位置開始, 修改單詞
- s - 刪除當前字符, 然后進入插入模式
- S - 清空當前行, 然后進入插入模式 (同cc)
- xp - 當前字符后移
- u - 撤銷
- U - 撤銷上一次的改動行的操作
- Ctrl + r - 重做(取消撤銷)
- . - 再次執行上個命令
選擇文本(可視化模式)
- v - 進入可視化模式, 移動光標高亮選擇, 然后可以對選擇的文本執行命令
- V - 進入可視化模式(行粒度選擇)
- o - 切換光標到選擇區開頭/結尾
- Ctrl + v - 進入可視化模式(矩陣選擇)
- O - 切換光標到選擇區的角
- aw - 選擇當前單詞
- ab - 選擇被 () 包裹的區域(含括號)
- aB - 選擇被 {} 包裹的區域(含花括號)
- at - 選擇被 <> 標簽包裹的區域(含<>標簽)
- ib - 選擇被 () 包裹的區域(不含括號)
- iB - 選擇被 {} 包裹的區域(不含花括號)
- it - 選擇被 <> 標簽包裹的區域(不含<>標簽)
- Esc - 退出可視化模式
可視化模式命令
- > - 向右縮進
- < - 向左縮進
- y - 復制
- d - 剪切
- ~ - 大小寫切換
- u - 將選中文本轉換為小寫
- U - 將選中文本轉換為大寫
剪切, 復制, 粘貼
- yy - 復制當前行
- 2yy - 復制 2 行
- yw - 復制當前單詞
- yiw - 復制光標處的單詞
- yaw - 復制光標處的單詞及其前后的空格
- y$ - 復制, 從光標位置到行末
- p - 在光標后粘貼
- P - 在光標前粘貼
- dd - 剪切當前行
- 2dd - 剪切 2 行
- dw - 剪切當前單詞
- diw - 刪除光標處的單詞
- daw - 刪除光標處的單詞及其前后的空格
- D - 剪切, 從光標位置到行末
- d$ - 剪切, 從光標位置到行末 (同<kbd>D</kbd>)
- x - 剪切當前字符
文字縮進
- >> - 將當前行向右縮進,寬度由 shiftwidth 控制
- << - 將當前行向左縮進,寬度由 shiftwidth 控制
- >% - 向右縮進 () 或 {} 內的區域 (光標需置于括號上)
- >ib - 向右縮進 () 內的區域
- >at - 向右縮進 <> 標簽內的區域
- 3== - 自動縮進 3 行
- =% - 自動縮進 () 或 {} 內的區域 (光標需置于括號上)
- =iB - 自動縮進 {} 內的區域 (光標需置于括號上)
- gg=G - 自動縮進整個緩沖區
- ]p - 粘貼并調整縮進至當前行
退出
- :w - 保存
- :w !sudo tee % - 使用 sudo 保存當前文件
- :wq or :x or ZZ - 保存并退出
- :q - 退出(修改未保存時警告)
- :q! or ZQ - 不保存強制退出
- :wqa - 保存所有標簽頁并全部退出
查找/替換
- /pattern - 查找<kbd>pattern</kbd>
- ?pattern - 向上查找<kbd>pattern</kbd>
- n - 查找下一個
- N - 查找上一個
- :%s/old/new/g - 替換全部
- :%s/old/new/gc - (逐個)替換
- :noh[lsearch] - 移除搜索結果的高亮顯示
多文件搜索
- :vim[grep] /pattern/{`{file}`} - 在多個文件中搜索 <kbd>pattern</kbd>
- :cn[ext] - 移動至下一個
- :cp[revious] - 移動至上一個
- :cope[n] - 打開搜索結果列表
標簽
- :tabnew or :tabnew {page.words.file} - 在新標簽中打開文件
- Ctrl + wT - 將窗口變成標簽
- gt or :tabn[ext] - 切換到下一個標簽
- gT or :tabp[revious] - 切換到上一個標簽
- #gt - 切換到第<kbd>#</kbd> 個標簽
- :tabm[ove] # - 移動標簽到第<kbd>#</kbd> 位(下標從 0 開始)
- :tabc[lose] - 關閉當前標簽
- :tabo[nly] - 關閉其他標簽
- :tabdo command - 在所有標簽中執行命令
多文件編輯
- :e[dit] 文件名 - 新建緩沖區打開 filename
- :bn[ext] - 切換到下個緩沖區
- :bp[revious] - 切換到上個緩沖區
- :bd[elete] - 關閉緩沖區
- :ls or :buffers - 列出所有打開的緩沖區
- :sp[lit] 文件名 - 新建緩沖區打開 filename 并水平分割窗口
- :vs[plit] 文件名 - 新緩沖區打開 filename 并垂直分割窗口
- :vert[ical] ba[ll] - edit all buffers as vertical windows
- :tab ba[ll] - edit all buffers as tabs
- Ctrl + ws - 水平分割窗口
- Ctrl + wv - 垂直分割窗口
- Ctrl + ww - 在窗口間切換
- Ctrl + wq - 關閉窗口
- Ctrl + wx - 將窗口切換到下一個窗口
- Ctrl + w= - 使所有窗口的高度和寬度相等
- Ctrl + wh - 切換到左側窗口
- Ctrl + wl - 切換到右側窗口
- Ctrl + wj - 切換到下側窗口
- Ctrl + wk - 切換到上側窗口
- Ctrl + wH - 使游標所在視窗全高并移至最左 (最左垂直視窗)
- Ctrl + wL - 使游標所在視窗全高并移至最右 (最右垂直視窗)
- Ctrl + wJ - 使游標所在視窗全寬并移至最下 (最下水平視窗)
- Ctrl + wK - 使游標所在視窗全寬并移至最上 (最上水平視窗)
趕緊點個贊和收藏,以防迷路!!!?
總結
以上是生活随笔為你收集整理的vim超实用指南收藏这一篇就够了的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 垃圾分类在计算机上的重要性,垃圾分类的意
- 下一篇: 阿里官方Java代码规范标准《阿里巴巴J