如果做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...