VIM使用小技巧

2021-09-25 15:48:18 字數 3575 閱讀 4132

如果做linux c/c++開發,經常ssh到linux伺服器編輯各種檔案,那麼熟練使用vim絕對可以提高工作效率。

vim的高效體現在多模式,可以很方便快速的對檔案進行各種編輯修改,而這恰恰是在軟體開發中經常遇到的場景。vim流行這麼多年,很多操作都是經過多年沉澱下來的高效操作,熟練的vim操作可以讓編輯與思維盡可能同步,快速的反覆修改,把**寫成想要的樣子。並且,在linux上很多的操作,預設整合vim鍵位的,比如man查詢乙個命令,git提交注釋時等。

之前還不太習慣用vim時,在linux伺服器上開啟sambda服務,把乙個目錄對映到windows上,然後在windows上修改對應的檔案**,修改完畢後再去編譯執行。這樣操作,效率都是偏低的,尤其是快速修改指令碼檔案除錯時,不能馬上就地修改快速執行。後來下定決心,好好練習了一下vim,感覺收穫很多。

想熟練運用vim,前期需要一定的刻意練習和思考。比如: 如何快速讓游標跳轉到指定位置;如何用最少的最快捷的按鍵完成自己想做的操作等。總結提煉一下自己平時所碰到的常見的編輯場景,思考查詢最有的操作辦法,刻意練習直到形成肌肉記憶。平時也可以多搜搜別人使用的vim的一些技巧,看看高手們如何把vim運用的出神入化的,博採眾家之長。

自己剛開始沉迷於sublime時,也是刻意的練習過一陣子,後面確實體會到了很多的方便之處,多點編輯,實時匹配正則替換,自動格式化等等。深度掌握一種或幾種文字編輯器對一名程式設計師還是蠻有必要的。而vim的學習相信帶來的收益更大,多種ide都有vim模式的鍵位支援,vim的編輯方式已經滲透了多種開發工具:)

總結一下自己平時常用到的操作,熟悉這種模式後,模式和按鍵組和使用,發揮更大的優勢。

# 跳轉

h # 移動到螢幕頂端high

m # 移動到螢幕中部middle

l # 移動到螢幕中部low

ctrl + o # 跳轉游標的上一次位置

ctrl + i # 跳轉游標的下一次位置

# 查詢

/xx # 查詢xx, n向下,n反向

?xx # 查詢xx, n向上,n反向

:noh # 取消搜尋高亮,no highlight

* # 選中並正向查詢游標所在的詞

# # 選中並反向查詢游標所在的詞

:set ignorecase # 搜尋忽略大小寫,可以tab聯想輸入

:set noignorecase # 不忽略

/# 可以聯想出歷史輸入過的詞

:set hlsearch # 開啟設定高亮

:jumps # 列出歷史跳轉列表

fx # 找到本行字母x,再按分號跳到下一處

# 替換

:s/old/new/g # 用new替換行內old

:2,5s/old/new/g # 替換2到5行

:%s/old/new/g # 全文替換

# 自動補全

ctrl + p # 插入模式下聯想已經輸入過的單詞

ctrl + x, ctrl + l # 插入模式下自動補全行, 可以配置組合鍵盤對映key-map

# 後台

ctrl + z # 掛起當前任務到後台

jobs

# 檢視後台掛起的任務

fg# 把後台掛起的任務n排程到前台,n可省

# 分屏

:sp

# split 水平分屏

:vs

# vsplit 垂直分屏

ctrl+ww # 兩次w,在分屏間跳轉

ctrl+w

# 跳轉分屏

ctrl+w <+>

# 擴大當前分屏

ctrl+w <->

# 減小當前分屏

:only # 取消分屏

# 錄製命令

q# 進入錄製,錄製到a暫存器

q # 結束錄製

qa # 想暫存器a追加錄製的命令

3@a # 執行3遍錄製的命令

@@ # 執行上次自己錄製的命令

# 多標籤

:tabe # tab edit 新標籤開啟

gt # go tab 在tab中切換

:tabc # tab close 關閉標籤頁

# 多buffer

:e file

# 新buffer中開啟file進行edit

:ls # 列出當前緩衝區

:b n # 去第n個緩衝區

:qa # 退出所有視窗, quit all

# 摺疊

zr # 開啟所有摺疊

zc # 摺疊當前行current

zo # 開啟當前摺疊open

zfap # zf乙個操作符, ap乙個文字塊,建立摺疊

# 縮排

>>

# 整行向右縮排

<<

# 整行向做縮排

==# 自動縮排

=% # 游標在括號處,縮排整個語句塊

# 區間內

vi" # 選中游標所在「引號內的內容,in "

vi' # in '

vi[# in [

vi(# in (

vi# 下一段段首, 同樣可配合%找配對

# 大寫i插入,只在第一行插入

esc # 所有之前塊選中的都會插入了

# 撤銷與恢復

u # 撤銷undo

ctrl + r # 反撤銷redo

u# 撤銷n次

u # 撤銷當前行所有修改

# 命令

:read !ls # 讀取命令的輸出

:read !date # 讀取日期

:!# 執行命令cmd

:shell # 新開乙個shell

:set list # 顯示空白符,關閉 set nolist

:%!xxd # 以16進製制檢視檔案內容

:x # 如果檔案有更改,則儲存後退出, 否則直接退出

.# 重複上一次操作, 非常有用!

j # join 合併兩行

k # 檢視游標所在單詞的幫助

ctrl + [

# == esc (ctrl + c)

vim 使用小技巧

vim查詢manpage 快捷鍵 ctrl k 可以在manpage 快速查詢當前cursor下面的單詞 vim輸入中文 輸入中文快捷鍵 ctrl vim中直接選中內容傳送郵件 選中內容後直接傳送郵件的方法 ubuntu 可以安裝下面軟體sudo apt get install mutt msmtp...

vim入門小技巧

第二講第三講 第四講 vim有著非常陡峭的學習曲線,要掌握它需要長時間的練習。打算記錄一些vim的常用基礎鍵,方便後期查閱,幫助入門的新手。k h l jvh 的鍵位於左邊,每次按下就會向左移動。l 的鍵位於右邊,每次按下就會向右移動。j 鍵看起來很象一支尖端方向朝下的箭頭。vim filename...

vim常用小技巧

以下是一些常用到的vim的小技巧 yy 複製一行 nyy 複製n行 p 貼上 dd 刪除 或剪下 一行 ndd 刪除 或剪下 n行 d 從游標開始刪除 或剪下 到行尾 d0 從游標開始刪除 或剪下 到行首 x 刪除游標,每次只刪除乙個 x 刪除游標前面的內容,每次只刪除乙個 u 撤銷剛才的操作 ct...