Vim基礎使用技巧
前提
在Linux系統上操作檔案,避免不了要使用vim編輯器,傳說中的編輯器之神。
我感到非常的慚愧,很長一段時間,我總是覺得使用vim的時候是那麼的力不從心,甚至覺得哪有傳說中的那麼神奇?那是因為我從來沒有完整學習過vim,甚至是沒有完整看過一遍:help
,總覺得一個編輯器有這個必要嗎?
平常只是使用vim修改個配置檔案什麼的,知道h|j|k|l
還有i
、o
等插入不就行了嘛,直到最近,編寫了一些程式碼才發現,vim不應該這麼難用,怎麼可能想修改一個字元,要先x
刪掉,然後i
插入,最後esc
退出,我覺得肯定有更快捷的方法,不然怎麼配上叫“編輯器之神”的稱號。
在這裡沒有高階的使用方法,沒有各種牛X外掛的介紹,這是非常基礎的常用使用技巧,我只是將這些常用的使用技巧做了一個簡單地總結,如果其中有一條技巧幫助到了你,那麼我就會覺得非常欣慰了。
1、移動
知道h|j|k|l
是"左下上右"是遠遠不夠的,還要知道下面這些字元,熟練使用他們會大大提升編輯效率。
w
當前游標位置直到下一個單詞起始處,不包括第一字元e
當前游標位置直到單詞末尾,包括最後一個字元$
前游標位置直到行尾,包括當前游標位置0
當前游標位置直到行首,不包括當前游標位置。注:這是數字0G
直接跳到檔案最後一行gg
直接跳到檔案第一行#G
跳到指定的行號數,#
代表行號,比如12G
直接跳到12行處顯示行號請使用設定命令
:set nu
一定要注意上面解釋的用語
- 直到:它是一個範圍,從游標處到下一個游標處的一個範圍
- 包括不包括:可以這麼說,移動的路徑中是否包括某個位置,為什麼這麼咬文嚼字,不就是移到下一個單詞處或是哪一行嘛,接著往下看,你就會知道原因。
2、刪除
可能被瞭解最多的就是dd
命令了吧,它是指刪除一行,要刪除多行的話,就要加上數字number dd
,比如2dd
刪除兩行(包括當前行),如果你想刪除一段程式中的一個函式,不知道你會不會先去數一數或是計算一下這個函式有多少行?我就這樣幹過好長時間。其實它的本質就是d
刪除指令,下面看一下刪除指令d
的基本格式。
d number motion
number
代表數字motion
代表移動
多說也解釋不清楚,下面看例項,當然最好是準備一個文件跟著我一塊練習。
d2w
number
為2,motion
為w
,代表刪除兩個單詞,這裡自己練習一下,就會體會到上面說的移動範圍以及包括不包括的意思。d$
沒有number
,motion
為$
,代表直接刪到行尾,包括當前游標位置。d5G
沒有number
,motion
為5G
,刪除當前行到第5行之間的內容,包括第5行。dG
沒有number
,motion
為G
,G
代表什麼?代表跳到最後一行對不對,那麼dG
呢?對了,刪掉當前行到最後一行內容,包括最後一行。dgg
這個不用解釋了吧,呵呵
上面只是舉了幾個特殊的例子,現在你可以大膽的去拿d
命令和移動命令組合了,當你明白了其中的道理,你會發現,何必要用2dd
去刪除兩行呢,使用dj
不是更快嘛。你甚至可以通過ggdG
來刪除全文,所以千萬不要去嘗試去記住所有的命令,你要記住的只是幾個字母而已,哈
3、更改
更改的命令是c
,道理完全同刪除命令d
一樣,格式用法都是一樣的,不一樣的是,c
命令會從正常模組直接進入編輯模式。
cw
修改一個單詞,這裡同ce
效果一樣,結合上面的內容,自己體會一下為什麼。c$
更改從當前游標到行末,還有c0
,c2w
等等命令就不再介紹了,到這裡相信你也理解了,而無需我再重複介紹了。
在這裡你就會發現,xi
命令貌似和cl
命令一個意思,都是刪掉一個字元,然後進入編輯模式進行替換。我覺得還是挺麻煩的,僅僅為了修改一個字元,就要進入編輯模式,改完了還得esc
退出編輯模式,這麼做vim都覺得委屈。
還是接著學習吧......
4、字元替換
替換命令,也許你都想到了是什麼,刪除是d
,更改是c
,替換當然是r
啦,哈哈,對了,就是r
,看到沒有,大神們就是怕你記不住,根本不用你去記。
好了,穿越到上面的問題去,我現在就想修改一個字元,有沒有更快的方法,別讓我來回esc
了,比如就想將vaid中的a改成o,那麼你可以將游標停在字母a上,然後按下替換命令r
,接著輸入字母o就行了,整個過程完全不用切到編輯模式,而直接替換了字元。
r
只是替換一個字元,如果你輸入R
就可以一直在替換模式,直到按下esc
退出為止。
5、複製貼上
複製命令是y
,格式同d
、c
一樣,在其後加入移動命令就可以複製指定內容了。下面也只是簡單兩個例子。
y2w
複製兩個單詞ggyG
複製全文,先用gg
命令跳到首行,然後yG
,從首行復制到最後一行,就複製全文了。
和d
命令類似,yy
代表複製當前行,2yy
代表複製兩行,既然複製完了,如何貼上呢?
使用命令p
就行了,其實p
命令的本質是將vim的暫存器中的內容貼上出來,這樣一講,你就會明白,剪下該怎麼做,剪下不就是刪了再貼上出來嗎,使用d
命令就可以了,其實vim會把刪除的內容存到暫存器中,然後你通過p
命令貼上,就達到了剪下的目的。
大寫P
和p
的區別只是一個是粘到前面,一個粘到後面而已。
6、搜尋匹配
搜尋單詞hello
,在正常模式下輸入:/hello
就行了,n
向下搜尋,N
向前搜尋。
想忽略大小寫進行搜尋,輸入設定命令:set ic
就可以了。
7、匹配替換
匹配替換就是word裡面的替換功能,如果全篇的void
都寫成了vaid
,總不能一個一個修改吧,於是就有了匹配替換功能。
:s/old/new/g
將所在行的old替換成new:%s/old/new/g
整個檔案範圍內進行替換:%s/old/new/gc
找到每個匹配串,並對每個匹配串提示是否進行替換:#,#s/old/new/g
在若干行範圍類進行替換,#
代表行號
8、撤銷與重做
這裡我只想提上一句,撤銷命令是u
,也就是undo;重做命令為ctrl-r
,好了,知道這些夠用了。
9、檔案
還有一些關於檔案操作的小技巧,就總結到下面了
:#,# w filename
選擇性儲存,如:13,14 w filename
將檔案中13行,14行另存到filename檔案中:r filename
插入外部文件,將filename檔案內容插入到游標所在下方
10、插入命令
為什麼把最基礎的命令留到了最後,因為前面的內容實在太精彩了。
i
&I
游標前插入 & 游標所在行行首插入a
&A
游標後插入 & 游標所在行行尾插入o
&O
下一行插入 & 上一行插入
結束語
好了,基本上,你現在可以熟練操作vim編輯器了,你會發現肯定比普通編輯器要厲害多了,但是要想達到IDE的效果,那你還得繼續努力,學習vim更為強大的命令以及外掛。
最後推薦一本書吧-《Vim實用技巧》
相關文章
- 『學了就忘』vim編輯器基礎 — 97、vim使用技巧
- vim基礎使用
- 使用 Vi/Vim 編輯器:基礎篇
- Vim 入門:基礎
- 【Vim】基礎之基礎——指尖的舞蹈
- Vim配置、外掛和使用技巧
- VIM操作技巧
- 教你零基礎玩轉 vim
- VIM 搜尋命令使用方法和技巧
- Linux基礎命令---vim文字編輯Linux
- linux基礎命令——文字編輯vimLinux
- 編輯器之神VIM 總結 基礎部分
- iOS 基礎開發技巧 (一)iOS
- VIM實用基本操作技巧
- 【Vim】【man】【技巧】使用vim處理man重定向幫助檔案亂碼問題
- 『學了就忘』vim編輯器基礎 — 94、vim編輯器介紹
- 運維乾貨 | 12 個實用的 Vim 使用技巧運維
- vim從入門到棄坑:基礎指令的歸類
- 日常生活小技巧 -- vim 中 ctags 的安裝和使用
- Vim 使用
- vim使用
- 針對高 級使用者的 Vim 編輯實用技巧
- 新手學習 Vim 的五個技巧
- 無外掛Vim程式設計技巧程式設計
- vim技巧--提取文字與文字替換
- 測試基礎(四)Jmeter基礎使用JMeter
- mongoose基礎使用Go
- webpack 基礎使用Web
- Markdown基礎使用
- WCDB基礎使用
- WebRTC基礎使用Web
- Git基礎使用Git
- mysql基礎使用MySql
- 基礎篇:一文講懂樹莓派命令列文字編輯工具Vim的使用樹莓派命令列
- c語言基礎的一些小技巧C語言
- Vim/Vi實用技巧(第二版)
- vi/vim使用進階: 在VIM中使用GDB除錯 – 使用vimgdb除錯
- 廣播基礎使用