vi filename 命令模式
a i o 插入模式??后前 行
Esc鍵 回到命令模式
Shift+: 編輯模式??set nu加行號 執行完命令后直接回到命令模式
?
:set nu 設置行號
:set nonu 取消行號
?
移動命令:
gg 到第一行
G ?到最后一行
nG 到第n行 ???:n到第n行
$ 移至行尾
0 移至行首
刪除命令:
x 刪除光標字符
nx 刪除光標后n個字符
dd 刪除光標行
ndd 刪除n行
dG 刪除光標之后所有行
D 刪除光標至行尾
:n1,n2d刪除指定范圍的行
?
復制和剪切命令:
yy 復制當前行
nyy 復制當前以下n行
dd 剪切當前行
ndd 剪切當前以下n行
p 行下粘貼
P 行上粘貼
?
替換和取消:
r 取消光標所在處的字符
R 從光標所在處開始替換字符,按Esc結束
u 撤銷上一步操作
?
搜索和搜索替換命令:
:/string 搜索指定字符串 ???:set ic 忽略大小寫搜索、替換set noic
:%s/old/new/g全文替換指定字符串 中間無空格
:n1,n2/old/new/c在一定范圍內替換指定字符串
g 不詢問
c詢問確認
:n1,n2s/^/#/g ?從n1行到n2行連續加注釋?:n1,n2s/^/\/\//g?加//注釋 轉義字符為\
:n1,n2s/^#//g?把行首的注釋符去掉
^表示行首
?
保存和退出命令:
:w 保存修改
:w new_filename 另存為指定文件
:wq 保存修改并退出 快捷鍵是ZZ
:q! 不保存修改退出
:wq! 強制保存修改并退出(文件所有者及root可使用,此時文件的所有者的權限是4)
?
ls -l 的縮寫是 ll
?
導入命令:
????:r 文件名 ?將指定文件內容導入當前文件中
????:!which ls 在不退出vim的情況下執行系統命令
????:r !date 將執行系統命令的結果導入到當前文件中
?
定義快捷鍵:
:map ^P I#<ESC> 插入#
:map ^P 0x ?????刪除第一個字符
Ctrl+v+p定義的快捷鍵是Ctrl+p
?
替換:
:ab mymail samlee@lampvrother.net
?
家目錄下的文件,文件內的編輯模式永久生效 /home.username/.vimrc ??/root/.vimrc
.vimrc 是vim編輯器的配置文件
set nu
map ^P I#<ESC>
ab mymail jinzhao@hbu.edu.cn
?
VIM多文件編輯:
:n 編輯下一個文檔
:N 編輯上一個文檔
:files 列出目前這個vim開啟的所有文檔
?
VIM多窗口編輯:
:vsp
:sp [filename] ?開啟一個新窗口。如果有filename,新窗口為新文檔,否則顯示同一個文檔。
[ctrl]+w ?j ?
[ctrl]+w ?下箭頭 ?移動到下方窗口
[ctrl]+w ?k ?
[ctrl]+w ?上箭頭 ?移動到上方窗口
ctrl]+w ?q ?相當于:q ?退出
?
:Ex ?查看當前目錄,選擇文件進行編輯
:Sex 查看整個目錄
?
VIM常用命令補充:
:set nu/ nonu ?設置/取消行號
:set autoindent/noautoindex ?是否自動縮進
:set backup/nobackup ?是否自動存儲備份
:set ruler ?是否顯示右下角的狀態欄說明
:set showmode ?是否顯示左下角如--INSERT--等提示符
:set all ?顯示當前所有環境參數設定值
:set ?顯示與系統默認值不同的參數設定
:syntax on/off ?是否語法高亮顯示
:set bg=dark/light ?設置背景顏色 ?