linux之vi,vim命令

vim 是對 vi 的擴充套件,文中的很多操作是 vi 通用的

vi 是

區分大小寫

的命令的,也就是說 g與G 是不同的命令

在不同模式下,快捷鍵是不一樣的 模式分 一般模式編輯模式指令模式

一般模式用於檔案內部操作,編輯模式用於輸入編寫等,指令模式用於對文字檔案進行操作

常用操作

進入一般模式為開始編輯,或者按 esc 後進入

linux之vi,vim命令

游標詳細操作

linux之vi,vim命令

查詢命令

linux之vi,vim命令

指令模式

linux之vi,vim命令

螢幕翻滾

linux之vi,vim命令

插入命令

linux之vi,vim命令

刪除命令

linux之vi,vim命令

多視窗模式

linux之vi,vim命令

多檔案編輯

linux之vi,vim命令

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 常用配置

linux之vi,vim命令

linux之vi,vim命令