VIM 必知必會12大類型操作 - Claire_level的個人頁面 - 開源中國社區
???? VIM 必知必會12大類型操作
????
??? vi 基本操作
??? 1、插入
??? i 在光標前插入
??? I 在行首插入
??? a 在光標后插入
??? A 在行末插入
??? o 在下一行插入
??? O 在上一行插入
??? r 輸入替換光標位置字符
??? R 進入輸入替換模式,輸入時替換光標后字符
??? u 撤銷上一步,在沒有保存文件時一直有用
??? ESC 退出編輯模式
??? 2、保存
??? :wq/ZZ 保存退出
??? :w 保存
??? :w! 強制保存
??? :w filename 文件另存為 filename
??? :n1,n2 w filename 將n1行到n2行的數據另存為filename
??? 3、退出
??? :q 退出
??? :q! 強制不保存退出
??? :qw! 強制保存退出
??? :x 保存退出
??? 4、光標移動
??? h、j、k、l 進行移動
??? H 定位到屏幕上面
??? L 定位到屏幕下面
??? M 定位到屏幕中間
??? $ 光標到行尾
??? 0 光標到行首
??? G 光標到文檔最后一行
??? gg 光標到文檔第一行
??? /n 光標到文檔第n行
??? nG 光標到文檔第n行
??? :n 光標到文檔第n行
??? n<enter>向下移動n行
??? n<space> 向后移動n字符
??? pageup | ctrl+b? 向上翻頁
??? pagedown | ctrl+f 向下翻頁
??? 5、復制/粘貼/刪除
??? yy、Y 復制當前行
??? nyy、nY 復制從當前行開始的n行
??? p 粘貼到下一行
??? P 粘貼到上一行
??? dd 剪切當前行
??? ndd 剪切n行
??? p 粘貼到下一行
??? D 當前光標開始刪除到行尾
??? dd 刪除當前行
??? ndd 從當前行開始向后刪除n行
??? d1G 刪除第1行到當前行的數據
??? dnG 刪除第n行到當前行的數據
??? dG 刪除當前行到最后一行的數據
??? x 向后刪除1個字符/刪除光標所在字符
??? nx 向后刪除n個字符/刪除光標后n個字符
??? X 向前刪除1個字符
??? :n1,n2G 刪除指定范圍的行
??? 6、搜索
??? :set ic 設置搜索時不區分大小寫
??? :set noic 設置關閉搜索時不區分大小寫
??? /str 從光標位置向下搜索str
??? ?str 從光標位置向上搜索str
??? n 找下一個
??? N 找上一個
??? 7、替換
??? :%s/abc/123/g 把abc全部替換成123
??? :%s/abc/123/gc 同上,但需要用戶一個個的確認替換
??? :n1,n2s/abc/123/g 把n1到n2行中abc全部替換成123
??? 8、撤銷
??? u 退回前一個動作
??? ctrl+r 重復前一個動作
??? :e! 文檔還原到最原始狀態
??? 9、塊操作
??? v字符選擇 光標經過的字符被選中
??? V行選擇 光標經過的行被選中
??? ctrl+v塊選擇 矩陣式選中
??? y 復制被選中的數據
??? d 刪除被選中的數據
??? 10、多文件編輯
??? vim file1 file2 同時編輯兩個文件file1和file2
??? :files 列出vim當前打開的文件列表
??? :n 編輯下一個文件
??? :N 編輯上一個文件
??? 11、多窗口操作
??? :sp file2 在打開一個文件后,用:sp在新窗口中打開另一個文件file2
??? ctrl+w -->j 窗口向下切換。先按ctrl+w,打開,再按j
??? ctrl+w -->k 窗口向上切換。先按ctrl+w,打開,再按k
??? 12、定義快捷鍵
??? :map 定義快捷鍵
??? ctrl+v ctrl+p? 獲得快捷鍵,p是要設置的快捷鍵位
??? ctrl+v+p 獲得快捷鍵
??? :map ^p I#<ESC> 定義ctrl+p快捷鍵,實現進入插入模式,在光標所在行行首添加#注釋,并退回到命令模式
??? :map ^e Iaabbcc 定義ctrl+e快捷鍵,在光標前插入aabbcc
??? :map ^b 0x 定義ctrl+b快捷鍵,刪除光標所在行前的#
??? :ab myname claire 自動替換,輸入myname后自動替換為claire
??? :unab myname claire 取消自動替換,輸入myname后自動替換為claire
??? 13、連續行注釋
??? n1,n2s/^、#/g 將n1至n2行前加#號
??? n1,n2s/^//g 去掉n1至n2行前的#號
??? n1,n2s/^#//g 去掉n1至n2行前的#號
??? n1,n2s/^/\/\//g 去掉n1至n2行前的//號
??? 14、其它操作
??? set nu 顯示行號(nu=number)
??? set nonu 取消等號(nonu= no number)
??? :r filename 把filename文件里的內容插入到當前光標所在的位置下
??? :!command 暫時離開vim,去執行command命令。 如(:!df -h)
??? :r !date 把當前系統時間導入到文件末尾
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
