linux之vi,vim命令
vim 是對 vi 的擴充套件,文中的很多操作是 vi 通用的
vi 是
區分大小寫
的命令的,也就是說 g與G 是不同的命令
在不同模式下,快捷鍵是不一樣的 模式分 一般模式編輯模式指令模式
一般模式用於檔案內部操作,編輯模式用於輸入編寫等,指令模式用於對文字檔案進行操作
常用操作
進入一般模式為開始編輯,或者按 esc 後進入
游標詳細操作
查詢命令
指令模式
螢幕翻滾
插入命令
刪除命令
多視窗模式
多檔案編輯
vim 自定義技巧
複製貼上取消縮排
:set paste
進入 paste 模式以後,可以在插入模式下貼上內容,不會有任何變形
這個引數做了這麼多事:
textwidth設定為0wrapmargin設定為0set noaiset nosisofttabstop設定為0revins重置ruler重置showmatch重置formatoptions使用空值
下面的選項值不變,但卻被禁用
lispindentexprcindent
繫結快捷鍵來啟用 / 取消 paste 模式
:set pastetoggle=
出現貼上換行符錯位,設定一下 。vimrc
“ this can change way of paste words:set paste” default tabstop=8:set tabstop=4“ use keyboard F11 to change paste mode:set pastetoggle=
vim 縮排
Normal Mode 下,命令>>將對當前行增加縮排,而命令<<則將對當前行減少縮排
在命令前使用數字,來指定命令作用的範圍
5<<
在 Insert/Replace Mode 下
Ctrl-Shift-t可以增加當前行的縮排
Ctrl-Shift-d則可以減少當前行的縮排
使用0-Ctrl-Shift-d命令,將移除所有縮排
需要注意的是,當我們輸入命令中的 “0” 時,Vim 會認為我們要在文字中插入一個 0,並在螢幕上顯示輸入的“0”;然後當我們執行命令 0-Ctrl-Shift-d 時,Vim 就會意識到我們要做的是減少縮排,這時 0 會就會從螢幕上消失
vim tab 縮排
tab 縮排寬度預設為 8 個空格
我們可以使用以下命令,來修改縮排寬度
:set tabstop=4:set softtabstop=4:set shiftwidth=4:set expandtab
tabstop: 表示一個 tab 顯示出來是多少個空格的長度預設 8
softtabstop: 表示在編輯模式的時候按退格鍵的時候退回縮排的長度當使用 expandtab 時特別有用。
shiftwidth: 表示每一級縮排的長度一般設定成跟 softtabstop 一樣。 當設定成 expandtab 時縮排用空格來表示noexpandtab 則是用製表符表示一個縮排
expandtab 選項,用來控制是否將 Tab 轉換為空格, 但是這個選項並不會改變已經存在的文字,如果需要應用此設定將所有 Tab 轉換為空格,需要執行
:retab!
vim 自動縮排
cindent
:set cindent
vim 可以很好的識別出 C 和 Java 等結構化程式設計語言,並且能用 C 語言的縮排格式來處理程式的縮排結構
smartindent
:set smartindent
在這種縮排模式中,每一行都和前一行有相同的縮排量,同時這種縮排形式能正確的識別出花括號,當遇到右花括號(}),則取消縮排形式。此外還增加了識別 C 語言關鍵字的功能。如果一行是以 #開頭的,那麼這種格式將會被特殊對待而不採用縮排格式。
autoindent
:set autoindent
在這種縮排形式中,新增加的行和前一行使用相同的縮排形式
顯示隱藏符號
預設不顯示 :set nolist
顯示 :set invlist
” normal is :set nolist | show hide is :set invlist:set nolist
使用 vim 暫存器
使用 vim 暫存器 “+p 貼上
根本不用考慮是否自動縮排,是否 paste 模式,直接原文傳遞
如果想儲存原暫存器中內容而同時增加新的內容,就要在 yy 前增加標籤
標籤以雙引號開始,跟著的是標籤名稱,可以是數字 0-9,也可以是 26 個字母
顯示所有暫存器內容
:reg
注意兩個特殊的暫存器:* 和 +
這兩個暫存器是和系統相通的,前者關聯絡統選擇緩衝區,後者關聯絡統剪下板
透過它們可以和其他程式進行資料交換
若暫存器列表裡無 * 或 + 暫存器,則可能是由於沒有安裝 vim 的圖形介面所致
sudo apt-get install vim-gnome
設定 vim 永遠顯示行號
修改 vim 的配置檔案加入 set nu
vi ~/。vimrc
然後輸入
set nu
當然也可以輸入其他配置類似
set nonusyntax on
vimrc 常用配置