vim 是對 vi 的擴展,文中的很多操作是 vi 通用的
vi 是區分大小寫的命令的,也就是說 g與G 是不同的命令
在不同模式下,快捷鍵是不一樣的 模式分 一般模式 編輯模式 指令模式
一般模式用于文件內部操作,編輯模式用于輸入編寫等,指令模式用于對文本文件進行操作
常用操作進入一般模式為開始編輯,或者按 esc 后進入
按鍵
效果
a,i,r,o,A,I,R,O
進入編輯模式
h,backspace
左移動
l,space
右移動
j
下移動
k
上移動
0,
移動到行首
$
移動到行末,1表示當前行的行尾,2表示當前行的下一行的行尾
b
按照單詞向前移動 字首
e
按照單詞向后移動 字尾
w
按照單詞向后移至次一個字首
H
移動到屏幕最上 非空白字
M
移動到屏幕中央 非空白字
L
移動到屏幕最下 非空白字
G
移動到文檔最后一行
gg
移動到文檔第一行
v
進入光標模式,配合移動鍵選中多行
Ctrl+f
向下翻頁
Ctrl+b
向上翻頁
u
撤銷上一次操作
``
回到上次編輯的位置
dw
刪除這個單詞后面的內容
dd
刪除光標當前行
dG
刪除光標后的全部文字
d$
刪除本行光標后面的內容
d0
刪除本行光標前面的內容
y
復制當前行,會復制換行符
yy
復制當前行的內容
yyp
復制當前行到下一行,此復制不會放到剪切板中
nyy
復制當前開始的 n 行
p,P,.
粘貼
ddp
當前行和下一行互換位置
J
合并行
Ctrl+r
重復上一次動作
Ctrl+z
暫停并退出
ZZ
保存離開
xp
交換字符后面的交換到前面
~
更換當前光標位置的大小寫,并光標移動到本行右一個位置,直到無法移動
光標詳細操作按鍵
效果
Ctrl+e
向下滾動
Ctrl+b
向上翻頁
b
按照單詞向前移動 字首
B
按照單詞向前移動 字首 忽略一些標點符號
e
按照單詞向后移動 字尾
E
按照單詞向后移動 忽略一些標點符號
w
按照單詞向后移至次一個字首
W
按照單詞向后移至次一個字首 忽略一些標點符號
H
移動到屏幕最上 非空白字
M
移動到屏幕中央 非空白字
L
移動到屏幕最下 非空白字
G
移動到文檔最后一行
gg
移動到文檔第一行
(
光標到句尾
)
光標到局首
{
光標到段落開頭
}
光標到段落結尾
nG
光標下移動到 n 行的首位
n$
光標移動到 n 行尾部
n+
光標下移動 n 行
n-
光標上移動 n 行
查找命令指令
效果
*
向下查找同樣光標的字符
#
向上查找同樣光標的字符
/code
查找 code 一樣的內容,向后
?code
查找 code 一樣的內容,向前
n
查找下一處
N
查找上一處
ma
在光標處做一個名叫 a 的標記 可用 26 個標記 (a~z)
`a
移動到一個標記 a
d`a
刪除當前位置到標記 a 之間的內容
:marks
查看所有標記
指令模式指令
效果
:q
一般退出
:q!
退出不保存
:wq
保存退出
:w filename
另存為 filename
:jumps
歷史編輯文檔記錄
:t nu
設置行號顯示
:t nonu
取消行號顯示
:t
顯示設置參數
:t autoindent
自動縮排,回車與第一個非空格符對齊
:syntax on/off
根據程序語法高亮顯示
:t highlight
高亮設置查看
:t hlarch
查找代碼高亮顯示
:nohlarch
暫時關閉高亮顯示
:t nohlarch
永久關閉高亮顯示
:t bg=dark
設置暗色調
:t bg=light
設置亮色調
屏幕翻滾按鍵
效果
Ctrl+f
向文件尾翻一屏幕
Ctrl+b
向文件首翻一屏幕
Ctrl+d
向文件尾翻半屏幕
Ctrl+u
向文件首翻半屏幕
插入命令按鍵
效果
i
在光標前
I
在當前行首
a
在光標后
A
在當前行尾部
o
在當前行下新開一行
O
在當前行上新開一行
r
替換當前字符
R
替換當前行及后面的字符,直到按 esc 為止
s
從當前行開始,以輸入的文本替代指定數目的字符
S
刪除指定數目的行,并以輸入的文本替代
ncw,nCW
修改指定數目 n 的字符
nCC
修改指定數目 n 的行
刪除命令按鍵
效果
ndw,nDW
刪除光標開始及其后 n-1 個字符
dw
刪除這個單詞后面的內容
dd
刪除光標當前行
dG
刪除光標后的全部文字
d$
刪除本行光標后面的內容
d0
刪除本行光標前面的內容
ndd
刪除當前行,以及其后的 n-1 行
x
刪除一個字符,光標后
X
刪除一個字符,光標前
Ctrl+u
刪除輸入模式下的輸入的文本
多窗口模式指令
效果
:split
創建新窗口
Ctrl+w
切換窗口
Ctrl-w =
所有窗口一樣高
Ctrl-w + 方向鍵
多窗口視圖切換
多文件編輯指令
效果
:args
列出當前編輯的文件名
:next
打開多文件,使用 n(Next) p(revious)
:file
列出當前打開的所有文件
vim 自定義技巧復制粘貼取消縮進:t paste
進入 paste 模式以后,可以在插入模式下粘貼內容,不會有任何變形這個參數做了這么多事:
textwidth設置為0wrapmargin設置為0t noait nosisofttabstop設置為0revins重置ruler重置showmatch重置formatoptions使用空值
下面的選項值不變,但卻被禁用
lispindentexprcindent
綁定快捷鍵來激活 / 取消 paste 模式
:t pastetoggle=<F11>
出現粘貼換行符錯位,設置一下 .vimrc
" this can change way of paste words:t paste" default tabstop=8:t tabstop=4" u keyboard F11 to change paste mode:t pastetoggle=<F11>vim 縮進
Normal Mode 下,命令>>將對當前行增加縮進,而命令<<則將對當前行減少縮進在命令前使用數字,來指定命令作用的范圍
5<<
在 Inrt/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 個空格
我們可以使用以下命令,來修改縮進寬度
:t tabstop=4:t softtabstop=4:t shiftwidth=4:t expandtabtabstop: 表示一個 tab 顯示出來是多少個空格的長度默認 8softtabstop: 表示在編輯模式的時候按退格鍵的時候退回縮進的長度當使用 expandtab 時特別有用。shiftwidth: 表示每一級縮進的長度一般設置成跟 softtabstop 一樣。 當設置成 expandtab 時縮進用空格來表示noexpandtab 則是用制表符表示一個縮進expandtab 選項,用來控制是否將 Tab 轉換為空格, 但是這個選項并不會改變已經存在的文本,如果需要應用此設置將所有 Tab 轉換為空格,需要執行
:retab!vim 自動縮進cindent
:t cindent
vim 可以很好的識別出 C 和 Java 等結構化程序設計語言,并且能用 C 語言的縮進格式來處理程序的縮進結構
smartindent:t smartindent
在這種縮進模式中,每一行都和前一行有相同的縮進量,同時這種縮進形式能正確的識別出花括號,當遇到右花括號(}),則取消縮進形式。此外還增加了識別 C 語言關鍵字的功能。如果一行是以 #開頭的,那么這種格式將會被特殊對待而不采用縮進格式。
autoindent:t autoindent
在這種縮進形式中,新增加的行和前一行使用相同的縮進形式
顯示隱藏符號默認不顯示 :t nolist顯示 :t invlist" normal is :t nolist | show hide is :t invlist:t nolist使用 vim 寄存器
使用 vim 寄存器 “+p 粘貼
根本不用考慮是否自動縮進,是否 paste 模式,直接原文傳遞
如果想保存原寄存器中內容而同時增加新的內容,就要在 yy 前增加標簽標簽以雙引號開始,跟著的是標簽名稱,可以是數字 0-9,也可以是 26 個字母
顯示所有寄存器內容
:reg
注意兩個特殊的寄存器:* 和 +
這兩個寄存器是和系統相通的,前者關聯系統選擇緩沖區,后者關聯系統剪切板通過它們可以和其他程序進行數據交換
若寄存器列表里無 * 或 + 寄存器,則可能是由于沒有安裝 vim 的圖形界面所致sudo apt-get install vim-gnome
設置 vim 永遠顯示行號修改 vim 的配置文件加入 t nu
vi ~/.vimrc
然后輸入
t nu
當然也可以輸入其他配置類似
t nonusyntax onvimrc 常用配置
設置行號
t nu
設置自動縮進
t autoindent
設置tab占n個字符
t tabstop=n
設置以空格代替tab(因為有部分場合不允許使用tab)
t expandtab
設置縮進字符數為n
t shiftwidth=n
設置自動語法高亮
syntax on
原文鏈接:https://rumenz.com/rumenbiji/linux-vi-vim.html
本文發布于:2023-02-28 21:01:00,感謝您對本站的認可!
本文鏈接:http://www.newhan.cn/zhishi/a/1677715713100165.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:linux vi命令(linuxvi命令是什么).doc
本文 PDF 下載地址:linux vi命令(linuxvi命令是什么).pdf
| 留言與評論(共有 0 條評論) |