亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

vim編輯器技巧備忘(初級-中級)

187J3X1 / 1030人閱讀

摘要:相反,不顯示行號設(shè)置為粘貼模式,解決粘貼時(shí)縮進(jìn)錯(cuò)亂問題。會自動加入創(chuàng)建從當(dāng)前行起至以下行的折疊標(biāo)記,進(jìn)行折疊。中的標(biāo)記都有一個(gè)名字,這個(gè)名字用單一的字符表示。

“學(xué)習(xí)vim并且其會成為你最后一個(gè)使用的文本編輯器”
學(xué)習(xí)建議:

丟棄鼠標(biāo)和小鍵盤

具有搭配使用各種按鍵的意識

首先來一張 mindmap :

初級 編輯模式(Insert Mode)

編輯模式包括以下動作:

insert:i在光標(biāo)所在字符前插入,I在當(dāng)前行首第一個(gè)非空格字符前插入

append:a在光標(biāo)所在字符后插入,A在行末尾開始插入

open:o在下一行插入新行,O在光標(biāo)所在行的上一行插入新行

replace:r將光標(biāo)處字符替換成r緊接的字符;R一直替換字符串,知道ESC鍵退出,同windows下的Insert鍵

Ctrl+p:自動提示

[ESC]:回到普通模式

普通模式(Normal Mode)

h, j, k, l,分別對應(yīng) 左← 下↓ 上↑ 右→

:q, :q!, :wq 退出 不保存強(qiáng)行退出 保存退出

移動光標(biāo)到當(dāng)前行首/非空格,同^,:0

$ 移動光標(biāo)到當(dāng)前行尾,同:$

G 移動光標(biāo)到文檔最后一行首

30G 轉(zhuǎn)到第30行,同 :30

9- 光標(biāo)向上移動9行,同9k

9+ 光餅向下移動9行,同9[space],9j

gg 轉(zhuǎn)到文檔第一行(1G)

H 移動到屏幕的第一列

M 移動到屏幕的中間列

L 移動到屏幕的最后列

w 移動到下一個(gè)單詞的首字母,(標(biāo)點(diǎn)符號認(rèn)為是一個(gè)單詞,W表示單詞以空格分隔)

e 移動到下一個(gè)單詞的末尾,(E認(rèn)為單詞以空格分隔)

b 移動到上一個(gè)單詞的首字母,(B認(rèn)為單詞以空格分隔)

fx 移動到下一個(gè)字母是x的位置。Fx向上移動。

% 匹配括號移動,包括 (, {, [ ,你需要把光標(biāo)先移到括號上

CTRL+b 向上(前)翻頁

CTRL+f 向后翻頁

d 刪除開始。其實(shí)是放到寄存器中,p或P命令調(diào)用。c即change,刪完進(jìn)入編輯模式

d$ 刪除光標(biāo)到行尾的所有文字,同D。C指令進(jìn)入編輯模式

dw 刪除當(dāng)前字符到單詞尾的所有字符。cw刪除光標(biāo)后的單詞并進(jìn)入插入模式,等同替換

dd 刪除當(dāng)前一行

2dd 刪除當(dāng)前兩行

x 剪切光標(biāo)處字符,可以p粘貼出來

y 復(fù)制開始。yank起來,p或P命令調(diào)用

yy p 復(fù)制當(dāng)前行并粘貼到下一行

5yy p 復(fù)制當(dāng)前行以下5行,在合適的地方粘貼

yw p 復(fù)制一個(gè)單詞并粘貼。

yi{ 復(fù)制光標(biāo)所在{}中的內(nèi)容。很容易知道ci{ 和 di " 的意思。

u 撤銷

CTRL+r 重做

. 點(diǎn)號重復(fù)做上一個(gè)命令

``.` 移動光標(biāo)到上一次的修改點(diǎn)

Ctrl+g 查看我當(dāng)前位置

命令模式

/word 向下查找word,n定位到下一個(gè)。?word 向上開始查找,同/word配合N。*直接查找光標(biāo)所在處單詞

:%s/word1/word2/g 替換所有word1為word2(^$ [])

:set noic 區(qū)分大小寫 (即set no igorecase,set ic不區(qū)分大小寫)

:set nu 顯示行號。:set nonu相反,不顯示行號

:set paste 設(shè)置為粘貼模式,解決Ctrl+Insert粘貼時(shí)縮進(jìn)錯(cuò)亂問題。:set nopaste設(shè)置回默認(rèn)

:se ff=unix 設(shè)置文本文件的格式為unix,去掉windows系統(tǒng)文件中的^M。

:!ls 執(zhí)行bash下的命令ls,回車后繼續(xù)回到vi。一般在一個(gè)不存在的目錄中創(chuàng)建文件時(shí)用到

:set all 查看vim說有設(shè)置屬性值

:map 查看綁定的快捷鍵

:marks 查看可用標(biāo)記

熟練上面的命令,已經(jīng)可以滿足日常工作要求,要提高效率可以學(xué)習(xí)vim的高級用法,如分屏顯示、分頁、標(biāo)簽功能、代碼折疊、鍵盤映射。

可視化模式

visual mode多用于用鍵盤靈活選擇文本。vV鍵進(jìn)入,可以實(shí)現(xiàn)同時(shí)編輯多行(如注釋)

中級 高級組合命令

:sh 暫時(shí)離開vi,進(jìn)入shell命令行

:!ls !表示要執(zhí)行一個(gè)shell命令

q: 調(diào)出歷史命令窗口

cc 替換一行,清空一行

cw 替換一個(gè)單詞,進(jìn)入插入模式

ea 在當(dāng)前單詞最后插入

vw visual模式選擇一個(gè)單詞

VU 全選一行,轉(zhuǎn)換成大寫

:5,12 co 13 將5至12行復(fù)制到第13行下

gg=G 自動縮排文件
% : 匹配括號移動,包括 (, {, [. ,你需要把光標(biāo)先移到括號上
*#:匹配光標(biāo)當(dāng)前所在的單詞,移動光標(biāo)到下一個(gè)(或上一個(gè))匹配單詞(*是下一個(gè),#是上一個(gè))

當(dāng)光標(biāo)在( ), [ ],< >, { }, " ", "" 內(nèi)時(shí),可以用ci, di, 或yi,加上(, [, <,{, ", "。這樣可以改寫/刪除/復(fù)制( )內(nèi),[ ]內(nèi),< >內(nèi),{ }內(nèi)," "內(nèi)," "內(nèi)的內(nèi)容。

多行注釋(塊操作)

首先按esc進(jìn)入命令行模式下,按下Ctrl + v,進(jìn)入列(也叫區(qū)塊)模式;

在行首使用上下鍵kj選擇需要注釋的多行;

按下鍵盤(大寫)I鍵,進(jìn)入插入模式;

然后輸入注釋符(“//”、“#”等);

最后按下esc

刪除多行開頭的一個(gè)字符與此類似,刪除多個(gè)字符也只要左右鍵,然后使用d。

另外一種多行注釋的方式就是替換:

:5,9s/^/#/g 添加注釋#

:5,9s/^#//g 刪除注釋#

:5,9s#^#//#g 添加注釋//,同:5,9s/^///#/g

:5,9s#^//##g 刪除注釋//

多行縮進(jìn)
[ESC], Ctrl+v 選擇行 <或>左右縮進(jìn),=自動縮進(jìn)(gg=G的局部功能)

多行行末尾加上 >> ${log}:Ctrl+v /^echo
>>相當(dāng)于tab鍵,一個(gè)縮進(jìn)

多行刪除

首先在命令模式下,輸入set nu顯示行號;

通過行號確定你要刪除的行;

命令輸入:32,65d,回車鍵,32-65行就被刪除了

自動補(bǔ)全
在Insert模式下,你可以輸入一個(gè)詞的開頭,然后按 或是,自動補(bǔ)齊功能就出現(xiàn)了

分屏(split)

分割窗口(同時(shí)編輯多個(gè)文件)

vi -o file1 file2 水平分屏,也可以在先打開file1后,使用:sp file2

vi -O file1 file2 垂直分屏,也可以在先打開file1后,使用:vsp file2

Ctrl+w w 光標(biāo)切換到另一個(gè)屏

k 關(guān)閉當(dāng)前窗口,如果有改動則提示要先保存。:wqa!保存退出所有文件

Ctrl+w v 左右分割當(dāng)前打開的文件。Ctrl+w s上下分割顯示

Ctrl+w H 左移該屏(大寫,L右移,K上移—改變vertical為horizontal)

:set scb 分屏同步滾動

另外一種不分屏,同時(shí)編輯多個(gè)文件的方法

vi file1 file2

:ls 展示全部打開的文檔。其中 % 代表正在打開的文件(buffer),# 代表上一個(gè)編輯過的文件,a 代表當(dāng)前激活的buffer空間,+ 代表有修改過的內(nèi)容但還未保存

:buffer 2 轉(zhuǎn)到打開的第二個(gè)文件?;蚝唽憺?:b2

:bn 轉(zhuǎn)到下一個(gè)文件。沒有保存不能離開這個(gè)文件。:bp 上一個(gè)文件

:b# 轉(zhuǎn)到上一個(gè)編輯過的文件,同 :e #。類似于多屏中Ctrl+w w

:e file3 編輯一個(gè)新的文件

Ctrl+g 顯示當(dāng)前文件名和行號,同 :f

折疊(fold)

主要應(yīng)用在復(fù)雜腳本的場合,特別是函數(shù)比較多,邏輯結(jié)構(gòu)比較復(fù)雜的代碼。(:help folding
有6種方式來折疊代碼

manual //手工定義折疊

indent //用縮進(jìn)表示折疊

expr  //用表達(dá)式來定義折疊

syntax //用語法高亮來定義折疊

diff //對沒有更改的文本進(jìn)行折疊

marker //用標(biāo)志折疊

indent
:set foldmethod=indent 設(shè)置縮進(jìn)折疊,fdm為簡寫。只對當(dāng)前會話有效,要使每次打開vim時(shí)折疊都生效,則在.vimrc文件中添加設(shè)置,如添加:set fdm=indent

zc 折疊與當(dāng)前縮進(jìn)相同的行

zo 打開折疊

zj 移到下一個(gè)折疊處

zk 移到上一個(gè)折疊處

zm 折疊所有可折疊標(biāo)記

zr 展開所有折疊

[z 到當(dāng)前打開折疊的開始

]z 到當(dāng)前打開折疊的結(jié)束

marker
注意與后文的mark不是同一東西,:set fdm=marker

zf 創(chuàng)建marker,默認(rèn) #{{{,#}}}

Ctrl+v zf 進(jìn)入可視化模式,選擇需要折疊的行,zc執(zhí)行折疊。會自動加入 #{{{ code block #}}}

zf9j 創(chuàng)建從當(dāng)前行起至以下9行的折疊標(biāo)記,zc進(jìn)行折疊。同9zf。類似有zf30G,從當(dāng)前行折疊刀第30行

zf% 創(chuàng)建匹配的 {}, [], (), <> 的fold。不用執(zhí)行zc

zd 刪除當(dāng)前行上存在的折疊標(biāo)記。僅當(dāng) "foldmethod" 設(shè)為 "manual" 或 "marker" 時(shí)有效

標(biāo)記

標(biāo)記(mark)是vim提供的精確定位技術(shù),只要你知道標(biāo)記的名字,就可以使用命令直接跳轉(zhuǎn)到該標(biāo)記所在的位置。vim中的標(biāo)記都有一個(gè)名字,這個(gè)名字用單一的字符表示。大寫和小寫字母(A-Za-z)都可以做為標(biāo)記的名字,這些標(biāo)志的位置可以由用戶來設(shè)置;而數(shù)字標(biāo)記0-9,以及一些標(biāo)點(diǎn)符號標(biāo)記,用戶不能進(jìn)行設(shè)置,由vim來自動設(shè)置。(:help mark-motions查看更多幫助)

ms 定義一個(gè)標(biāo)記s

`s 跳轉(zhuǎn)到標(biāo)記s的地方

"s 跳轉(zhuǎn)到調(diào)劑s所在行首

`. jump to position where last change occurred in current buffer

`` jump back (to position in current buffer where jumped from)

:delmarks aA。使用:delmarks!刪除所有小寫(a-z)的標(biāo)記

:marks 查看所有標(biāo)記

插件

待續(xù)

vimrc

.vimrc 是目前自己用的比較習(xí)慣的vim風(fēng)格。

參考

簡明 Vim 練級攻略

Vim Cheat Sheet for Programmers

VIM哲學(xué)


原文鏈接地址:http://seanlook.com/2014/08/07/vim-tips/


文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/24814.html

相關(guān)文章

  • IT運(yùn)維必備技能

    摘要:熟練使用等抓包工具底層大神級,內(nèi)核其它素養(yǎng)處理方式除了技能,我覺得素養(yǎng)態(tài)度也可以談?wù)劙踩\(yùn)維人員的權(quán)限很大,所以一定要保證帳號私鑰的安全。應(yīng)該第一時(shí)間和開發(fā)部門確認(rèn),要求優(yōu)化代碼。進(jìn)取心不斷學(xué)習(xí)運(yùn)維的知識范圍很廣,要不斷學(xué)習(xí)。 寫代碼寫了10多年, 從小公司到大公司, 前端, 后端, 數(shù)據(jù)庫, 運(yùn)維什么都做, 最后還是專職做運(yùn)維了. 整理下運(yùn)維的一些技能, 部分是網(wǎng)上資料并整理. Li...

    lily_wang 評論0 收藏0

發(fā)表評論

0條評論

187J3X1

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<