自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

推薦學(xué)習(xí)的vim實(shí)用技巧

運(yùn)維 系統(tǒng)運(yùn)維
本文為大家介紹了為實(shí)用的vim使用技巧。其中為大家總結(jié)了選定文字/拷貝粘貼,折疊代碼,查找命令等相關(guān)使用技巧。希望對(duì)大家在使用和學(xué)習(xí)的時(shí)候有所幫助。

讀本文之前請(qǐng)注意:

1. 本文的目標(biāo)是提供一些vim的使用技巧,利用這些技巧可以提高vim的操作效率。部分技巧在vi上也可以使用,但是現(xiàn)在基本上都是用vim了。

2. 本文是整理和總結(jié)使用技巧,而非講解vim入門(mén),因此不會(huì)涉及最基本的使用,例如如何上移或下移光標(biāo),對(duì)此類(lèi)操作請(qǐng)參閱任何一本vim或者vi教程。

3. 本文閱讀對(duì)象是了解了vim的基本操作,而希望高效地利用vim進(jìn)行工作的人。熟練使用vim的人自然不必細(xì)讀,如果能留下您的寶貴意見(jiàn),本人將感激不盡。

4. 本文由本人搜集整理,轉(zhuǎn)載請(qǐng)注明出處

本文一般情況下用(里邊的字母一般大小寫(xiě)無(wú)所謂,除非特別注明)表示按住ctrl同時(shí)按下相關(guān)字母,命令前加一個(gè)i表示在插入模式下用這個(gè)命令

1. 選定文字 / 拷貝粘貼

v為可視模式,可以選定多行。選定多行之后,可以用yy或者dd等等進(jìn)行拷貝和剪切。

p 是粘貼

y 和d 可以直接拷貝或者剪切選定的內(nèi)容

yw是拷貝一個(gè)單詞

如果要復(fù)制整行的最簡(jiǎn)單辦法就是V,y,p 就行了

v是可以選定一行任意個(gè)字符的,V是行選定的,一次一整行,然后通過(guò)向下或向上移動(dòng)光標(biāo)而選定多行。

對(duì)于v選定的,拷貝后就是這么多,選多少就拷貝多少,而V選定的,粘貼的話(huà)會(huì)自動(dòng)換到下一行

命令模式下,也是塊選定,不過(guò)是列塊選定

2. 折疊代碼

可以zf進(jìn)行折疊, 用zo打開(kāi)折疊,也可以方向鍵向右打開(kāi)折疊,zc 關(guān)閉折疊(只要在被折疊的塊中的任一個(gè)語(yǔ)句就行)

3. 縮進(jìn)代碼

是右縮進(jìn)

按v選定后按=就是自動(dòng)格式化代碼,自動(dòng)縮進(jìn),內(nèi)部的遞歸的縮進(jìn)都做到了

行左移>,該命令用于調(diào)整源碼縮進(jìn)格式簡(jiǎn)便快速。

4. 移動(dòng)光標(biāo)

%是從大括號(hào)的開(kāi)始移動(dòng)到大括號(hào)的結(jié)束位置

:后邊加行號(hào)就是跳到這一行

光標(biāo)返回到以前的位置。相當(dāng)于光標(biāo)移動(dòng)的“撤銷(xiāo)”

光標(biāo)返回到后來(lái)的位置。相當(dāng)于光標(biāo)移動(dòng)的“恢復(fù)”

5. 多文件編輯 / 緩沖區(qū)命令

vim下每一個(gè)打開(kāi)的文件對(duì)應(yīng)一個(gè)緩沖區(qū)(buffer)。

多文件編輯會(huì)有兩種情形,一種是在進(jìn)入 vim 前所用的參數(shù)就是多個(gè)文件(這種情形稱(chēng)為 argument list)。另一種情形是進(jìn)入 vim 后另外再開(kāi)其它的文件(稱(chēng)為 buffer list)。不過(guò)都可以統(tǒng)稱(chēng)為buffer。

1)打開(kāi)文件

vi flname1 flname2… flnameN

將多個(gè)文件調(diào)入緩沖,是 argument list。

:e filename

這是在進(jìn)入 vim 后,在不離開(kāi) vim 的情形下再開(kāi)其它文件,只要您要編輯的檔案是在目前目錄,Tab 補(bǔ)全鍵還是可以使用。是buffer list。

注意::e 或者:new 或者:split 后邊可以跟目錄,這樣就可以在目錄下慢慢找要打開(kāi)的文件了

2)緩沖區(qū)跳轉(zhuǎn)

:n 編輯下一個(gè)文件。

:2n 編輯下二個(gè)文件。

:N 編輯前一個(gè)文件。注意,這種用法只能用于 argument list 的情形。

:rew 回到首文件

:args 查看當(dāng)前編輯緩沖文件狀態(tài)

:e# 或 Ctrl-^ 編輯前一個(gè)檔案,用于兩文件互相編輯時(shí)相當(dāng)好用。這種用法不管是 argument list 或buffer list 檔案間皆可使用。 使用Ctrl-^ 命令更便捷,但如終端類(lèi)型不正確該功能將無(wú)效。

用:ls來(lái)顯示緩沖區(qū)中的文件,編號(hào)后邊有#的代表是前一個(gè)文件,可以通過(guò):e#來(lái)進(jìn)入,有%a的代表是當(dāng)前文件,什么也沒(méi)有的可以通過(guò):bn來(lái)進(jìn)入,這里的n代表文件編號(hào)。

:b文件名或編號(hào) 移至該文件。

在 :ls 中就會(huì)出示各文件的編號(hào),這個(gè)編號(hào)在未離開(kāi) vim 前是不會(huì)變的。這個(gè)指令 elvis 也是可以使用。當(dāng)然 :e#編號(hào) 也是可以的,這樣的用法則是所有 vi clone 都通用了。

在 buffers 中,減號(hào) - 表示這個(gè) buffer 并未載入,不過(guò),不必?fù)?dān)心,載入相當(dāng)快速的。加號(hào) + 表示這個(gè) buffer 已經(jīng)修改過(guò)了。

:bn buffer next。這里的n代表字母n

:bl buffer last。

以上兩個(gè)指令 elvis 不適用。

如果您是使用 vim 的 GUI,那就在菜單上就會(huì)有 Buffers 這個(gè)選項(xiàng),可以很容易的知道及移動(dòng)各buffer 間。

3)移除緩沖區(qū)

:bd(elete) buffer 在未離開(kāi) vim 前是不會(huì)移除的,可使用這個(gè)指令移除。其實(shí)移除它干什么呢?vim是您在叫用時(shí)才會(huì)載入的,因此這些 buffers 并不是像 cache 一般要占內(nèi)存的。

4)重新編輯

放棄一修改過(guò)的文件,重新編輯。

(1)使用命令 :q!強(qiáng)行退出后再vi flname重新進(jìn)入。

(2)使用命令 :e!強(qiáng)行重編輯更便捷。這樣也是會(huì)打開(kāi)文件,但會(huì)放棄目前編輯文件的改變,否則如果文件已有變動(dòng),vim 預(yù)設(shè)是不讓您隨便離開(kāi)的。:e! 后不接什么的話(huà),代表舍棄一切修改,重新載入編輯中文件。

5) 其他命令

:files 或 :buffers 或 :ls 會(huì)列出目前 buffer 中的所有文件。

在 elvis 中可使用 :b 來(lái)叫出 buffers。

:f 或 Ctrl-g 顯示目前編輯的文件名、是否經(jīng)過(guò)修改及目前光標(biāo)所在之位置。

:f 文件名 改變編輯中的文件名。(file)

:r 文件名 在光標(biāo)所在處插入一個(gè)文件的內(nèi)容。(read)

:35 r 文件名 將文件插入至 35 行之后。

gf 這是 vim 的特殊打開(kāi)文件的方法,會(huì)打開(kāi)光標(biāo)所在處的 word 為名的文件,當(dāng)然,這個(gè)文件要在當(dāng)前目錄內(nèi),否則會(huì)創(chuàng)建新文件。

6. 查找命令

用/查找單詞后,n可以跳到下一個(gè),N則是上一個(gè),:nohls可以取消高亮

查找時(shí),:set ignorecase”項(xiàng)讓VIM忽略大小寫(xiě),“:set noignorecase” 來(lái)關(guān)閉這項(xiàng)功能。

7. 修改文字

cw:刪除一個(gè)單詞并進(jìn)入插入模式,cc:刪除一行并進(jìn)入插入模式。

r:然后輸入的字母將替換當(dāng)前字母并保持命令模式,R則是不停的替換(一個(gè)挨著一個(gè))。

0到行首,$到行尾。

8. 函數(shù)間跳轉(zhuǎn)

ctrl+]和ctrl+T分別是查找函數(shù)的定義和返回,好像需要ctag的支持

i 跳轉(zhuǎn)到光標(biāo)所指標(biāo)識(shí)符的定義行,是打開(kāi)一個(gè)新的小窗口顯示,記住要加個(gè)i,***是找自己項(xiàng)目下的文件,否則找?guī)旌瘮?shù)的話(huà)還不如man.

大寫(xiě) K 看光標(biāo)所指標(biāo)識(shí)符的 man 幫助頁(yè)

9. 窗口命令

= ctrl+w

:split 文件名 同時(shí)在一個(gè)頁(yè)面顯示多個(gè)文件的內(nèi)容,類(lèi)似多窗口,用切換當(dāng)前窗口

f 切分顯示光標(biāo)在處的文件名,VIM 會(huì)在 path 中搜索該文件名,比如常用它打開(kāi) #include 語(yǔ)句中的文件

_ 當(dāng)同時(shí)打開(kāi)幾個(gè)文件時(shí),按 _ 使當(dāng)前窗口***化

用Ctrl-W命令指定光標(biāo)移動(dòng):

Ctrl-W + 擴(kuò)大窗口

Ctrl-W - 縮小窗口

Ctrl-W h 移動(dòng)到窗口左邊

Ctrl-W j 移動(dòng)到窗口下邊

Ctrl-W k 移動(dòng)到窗口上邊

Ctrl-W l 移動(dòng)到窗口右邊

等于是按下后,松開(kāi)鍵盤(pán),再按下一個(gè)命令就可以了.

如果要關(guān)閉分割窗口可以用:close,剩下只有一個(gè)窗口的話(huà)就不能關(guān)了。

多窗口是split,像用e打開(kāi)多個(gè)文件是將文件放在緩沖區(qū)中。

10. 自動(dòng)完成

i 向上搜索,補(bǔ)全一個(gè)詞

i 向下搜索,補(bǔ)全一個(gè)詞

i 補(bǔ)全一行。

比如你寫(xiě)過(guò)一行 for (int i = 0; i 即可。如果補(bǔ)全出來(lái)的不是你想要的那一行,你可以按 或

選擇上一個(gè)或下一個(gè)匹配行i 在文件系統(tǒng)中搜索,補(bǔ)全一個(gè)文件名

如果按 或 補(bǔ)全一個(gè)詞,在當(dāng)前文件中沒(méi)有找到匹配,VIM 將搜索 #include 語(yǔ)句中的文件,而文件的位置將在 path 中搜索。

i 把上一行對(duì)應(yīng)列的字符抄下來(lái)

i 把下一行對(duì)應(yīng)列的字符抄上來(lái),這兩個(gè)都可以一直按下去,到了行尾自己會(huì)停的.

11. 注釋整塊內(nèi)容

注釋塊的方法:

選定要注釋掉的行 I // Esc

I之后輸入的東西就是插入到選定的行前邊的,直至Esc.

要去掉注釋的辦法:選定注釋符//,然后d

列塊選定后I是在前邊都插入,A是在后邊都插入

是按列塊模式的選定,是行選定,v是普通選定

12. 其他命令

u可以撤銷(xiāo)上一步操作, ctrl+r可以恢復(fù)

i命令執(zhí)行一個(gè)普通模式的命令,執(zhí)行完畢后回到插入模式,不用多次Esc

i后續(xù)字符 輸入特殊的 ASCII 字符或鍵。

. 在光標(biāo)當(dāng)前位置處重復(fù)上一次操作

:!命令行 執(zhí)行一條外部命令

【編輯推薦】

  1. Ubuntu vim顯示行號(hào)語(yǔ)法高亮自動(dòng)縮進(jìn)
  2. Ubuntu vim實(shí)用配置文件用命令截屏
  3. Vim編輯器實(shí)用技巧分享 慶祝Vim 7.3發(fā)布
  4. 8月第3周系統(tǒng)升級(jí)錄:你了解Vim嗎?
  5. 有關(guān)vim編輯器使用心得的十個(gè)分享
責(zé)任編輯:張浩 來(lái)源: chinaUnix博客
相關(guān)推薦

2009-09-04 10:27:28

Linux實(shí)用技巧linux操作系統(tǒng)linux

2022-03-23 09:18:10

Git技巧Linux

2010-08-18 09:19:34

Vim編輯器Vim 7.3

2009-12-21 15:50:39

2009-01-03 09:34:30

ASP.NET.NET性能優(yōu)化

2011-04-08 15:40:01

Oracle認(rèn)證

2022-10-11 08:00:47

多線(xiàn)程開(kāi)發(fā)技巧

2022-11-03 10:28:59

PandasSAC機(jī)制

2024-05-17 08:52:43

SQL實(shí)用技巧行列轉(zhuǎn)換

2018-05-10 17:39:13

Python 機(jī)器學(xué)習(xí)編程語(yǔ)言

2022-05-30 09:01:13

CSS技巧前端

2010-09-14 10:41:24

DIV+CSS排版

2009-12-09 11:21:30

Linux實(shí)用技巧

2019-12-22 23:10:19

LinuxSSH加密

2019-11-25 10:12:59

Python技巧工具

2009-12-23 17:32:35

Linux構(gòu)建軟路由

2019-10-10 16:31:51

PyCharmPythonWindows

2019-07-16 11:15:04

JavaScriptCSS數(shù)據(jù)庫(kù)

2022-05-11 12:15:50

scriptweb性能

2023-01-26 01:33:09

web性能優(yōu)化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)