国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android中vim編輯器進階的使用介紹

2020-02-21 17:24:48
字體:
供稿:網(wǎng)友

隨著網(wǎng)絡(luò)信息的飛速發(fā)展,移動設(shè)備的便捷性已被廣泛接受,越來越多的開發(fā)人員在移動設(shè)備上有所飛躍,接下來武林技術(shù)頻道小編給大家介紹Android中vim編輯器進階的使用介紹。

1. 移動指令
??? (1). h j k l, 方向鍵,記憶技巧:左右方向的是最左邊和最右邊的,j向下打了個勾,所以是向下鍵,剩下的k就是向上的鍵了。
??? (2). b, before,上一個單詞(詞首)
?????????? w, word,下一個單詞(詞首)
?????????? e,? end,下一個單詞(詞尾)
??? 注意這些小寫的命令由字母,點,數(shù)字,下劃線劃分,還有這三個對應(yīng)的大寫字母的命令,B,W,E,類似的意思,但是是以空格區(qū)分移動的。總而言之,大寫的移動范圍要大。
??? (3). gg 首行
???????????? G 尾行,這兩個命令用的較多
??? (4). n%? 跳到n%的那行
??? (5). ^/0? 到行首,我有時特別喜歡0,非常清晰簡明的命令
????????? $ 到行尾
??? (6). - 非空白行首向上移動
????????? + 非空白行首向下移動
??? (7). 行移動

?

nj????????????????????? //向下移動n行
nk????????????????????? //向上移動n行
nh????????????????????? //向左移動n列
nl????????????????????? //向有移動n列
n_????????????????????? //向下移動n-1行,并光標(biāo)移動到非空白行首
n-????????????????????? //向上移動n行,并光標(biāo)移動到非空白行首


(8).通過查找字符移動

?

?

?


fx/Fx?????????????????? //向后/前查找字符x,行內(nèi)跳轉(zhuǎn)很有用
tx/Tx?????????????????? //向后/前查找字符x
//fx/Fx和tx/Tx的區(qū)別是用f光標(biāo)停留在x上,用t光標(biāo)停留在x的前面一個上

;?????????????????????? //執(zhí)行上次的fFtT
,?????????????????????? //反方向執(zhí)行fFtT,這兩個有意思


2. 插入,替換,刪除
??? (1). 學(xué)會a和i混用,不要只會用i進入插入模式,有時a進入插入模式后更方便,比如插入鍵盤右邊的字母符號,用a的話,左右手配合起來效率更高。
??? (2). 學(xué)會I和A,快速進入行首和行尾插入模式,特定時刻用起來超爽!
這個很好理解,小寫的i是光標(biāo)前,大小的I是整行前面,o/O類似,畫面很清晰。
??? (3). 學(xué)會o和O混用,不要只會用o進入下行編輯:
?????????? (3.1). 進入上行編輯,大寫的O更快,而不是ko,雙手比單手要快!
?????????? (3.2). 第一行前面想插入一行時,O比其他任何操作更直接和快速(不要先回到開頭<+插入模式>+回車)
??? (4). r 快速替換字符,最大的好處是不許要切換模式,節(jié)省了大量時間,非常有用!(R,這個命令我用的少,有的時候用的特別混亂,就不說了)
?????????? s 刪除光標(biāo)后一個字符并進入插入模式。該命令提供了r命令+進入插入模式的快速實現(xiàn)方法。
??? (5). c 這個命令很強大,歸類說明一下

?

?

?


cm???????????????????? //m指的是前面的移動命令,類似的有dm,ym,g?m,gum,gUm
?????????????????????? //改變內(nèi)容(m定義了改變范圍)并進入插入模式,這里說的改變就是刪除,舉例說明:
cw???????????????????? //刪除光標(biāo)后一個單詞并進入插入模式
cl???????????????????? //刪除光標(biāo)后一個字母并進入插入模式


(6). cc和S 修改當(dāng)前行,意思是刪除該行所有字符內(nèi)容,但保留行首空格
?????????? D和C 刪除該行光標(biāo)后所有內(nèi)容,無論字符還是空格,這個命令我用的很多:代碼審核格式化代碼時,刪除空行的空格和行尾空格。
??? (7). 學(xué)會結(jié)合t這個命令

?

?

?


t????????????????????? //till的意思,這是我最喜歡的命令之一
dt"??????????????????? //行內(nèi)刪除直到","不刪除
ct)??????????????????? //行內(nèi)改變直到),)不刪除
... ...


(8). 學(xué)會x和X混用,分別是向前刪除和向后刪除字符
(9). :rd 刪除第r行

?

3.查找

?

#????????????????????? //向下一個查找結(jié)果
*????????????????????? //向下一個查找結(jié)果
//在#/*之后按n/N可以重復(fù)/反向重復(fù)它們的命令

//下面這兩個命令在編程時,很有用
gd???????????????????? //跳轉(zhuǎn)到光標(biāo)變量的定義位置(局部變量)
gD???????????????????? //跳轉(zhuǎn)到光標(biāo)變量的定義位置(全局變量)

?

4. 撤銷和恢復(fù)

?

u????????????????????? //撤銷
ctrl + r?????????????? //恢復(fù)

?

5. 滾動

?

ctrl + e/y???????????? //向下/上一行一行的滾動
ctrl + d/u???????????? //向下/上半頁半頁的滾動
ctrl + f/b???????????? //向下/上一頁一頁的滾動

?

6. 可視模式(選擇塊)
??? 可視模式其實非常有用,它的選擇很靈活,而且視覺效果上看著和鼠標(biāo)選擇一樣,學(xué)習(xí)成本低,但是功能強大。
??? (1). v 進入可視模式
??? (2). shift + v 也就是大寫的V,可視模式的行選擇,整行整行的選擇,用于剛好整行或者大篇幅內(nèi)容的處理比較方便。
??? (3). ctrl + v 可視模式的列選擇,比行選擇模式更加細(xì)化,可選擇連續(xù)的列進入操作
?????????? 選擇塊模式需要和其他命令結(jié)合:

?

V + G????????????????? //選擇當(dāng)前行一直到文本結(jié)尾
V + G + d????????????? //刪除當(dāng)前行一直到文本結(jié)尾
V + G + y????????????? //復(fù)制當(dāng)前行一直到文本結(jié)尾
V + gg + d???????????? //刪除當(dāng)前行一直到文本開頭
V + gg + y???????????? //復(fù)制當(dāng)前行一直到文本開頭
ctrl+v + <移動>+ d????? //刪除選擇的列
ctrl+v + <移動>+ y????? //復(fù)制選擇的列


(4). gv 選中上次的選中區(qū)域
(5). 選中單詞,句子,段落:

?

?

?


vaw?????????????????? //選中一個單詞(word)
vas?????????????????? //選中一個句子(sentence)
vap?????????????????? //選中一個段落(paragraph)
viw?????????????????? //選中一個單詞(word)
vis?????????????????? //選中一個句子(sentence)
vip?????????????????? //選中一個段落(paragraph)


(6). 選中括號:

?

?

?


vab?????????????????? //選擇()里面的內(nèi)容, 包括小括號
vaB?????????????????? //選擇{}里面的內(nèi)容,包括大括號


7.執(zhí)行shell命令

?

?

?


//記住這兩種用法,你嘗到它們的甜頭的
:sh?????????????????? //打開shell,可執(zhí)行shell命令,輸入exit退出shell返回到vim
:!cmd???????????????? //直接執(zhí)行shell


比如上篇文章中提到的自動化打包腳本,我修改了代碼后,需要執(zhí)行一下這個腳本編譯一下,但是我還不想完全退出vim,因為我還需要繼續(xù)修改,就可以使用

?

?

?


:sh?????????????????? //打開一個終端
./build.sh??????????? //執(zhí)行build.sh
exit????????????????? //退出終端,繼續(xù)vim編輯
//或者
:!./build.sh????????? //在vim窗口直接執(zhí)行build.sh腳本,然后按Enter或其他命令繼續(xù)?


是不是很方便!

?

8. 專題一:快速選中、刪除、復(fù)制、修改引號或括號內(nèi)的內(nèi)容

?

//以下操作一定要熟記,能大大提高你編輯文本的效率
ci'、ci”、ci(、ci[、ci{、ci<?????????? //分別更改這些配對標(biāo)點符號中的文本內(nèi)容
di'、di”、di(或dib、di[、di{或diB、di<? //分別刪除這些配對標(biāo)點符號中的文本內(nèi)容
yi'、yi”、yi(、yi[、yi{、yi<?????????? //分別復(fù)制這些配對標(biāo)點符號中的文本內(nèi)容
vi'、vi”、vi(、vi[、vi{、vi<?????????? //分別選中這些配對標(biāo)點符號中的文本內(nèi)容


9. 專題二:替換
查找并替換操作使用的太頻繁了,下面針對這個專題從網(wǎng)上或書籍上收集了替換的幾個常用的強大用法:

?

?

?


//語法
/**
?* 說明
?* range表示行數(shù),如果是%表示所有行
?* s表示substitution,替換的意思
?* flag表示標(biāo)志,取值g,i,c等
?* g表示global,全部
?* i表示ignore,忽略大小寫
?* c表示confirm,一個一個交互確認(rèn)替換
?* count表示從當(dāng)前行到接下來的第幾行,表示范圍
?*/
:[range]s/{pattern}/{string}/[flag] [count]


(1). 全部替換
參數(shù)g實現(xiàn)全部替換,否則只替換一個
(1). 全部替換
參數(shù)g實現(xiàn)全部替換,否則只替換一個

:%s/{old-pattern}/new-text/g

?

(2). 行內(nèi)替換
%代表所有行,去掉%表示當(dāng)前行,只替換當(dāng)前行

:s/{old-pattern}/new-text/g

(3). 指定行范圍替換
對1到10行的結(jié)果替換

:1,10s/{old-pattern}/new-text/g

(4). 可視模式替換
如果你覺得數(shù)行數(shù)比較麻煩,可以使用可視模式,首先進入可視模式,然后選擇行
列,最后輸入:自動進入:'<,'>
后面加上s/{old-pattern}/new-text/g,則只替換選擇區(qū)域的結(jié)果

:'<,'>s/{old-pattern}/new-text/g

(5). 整詞替換,而不是部分匹配的單詞
對單詞匹配模式外包一個<和>

:s//<blog/>/weibo/g? //替換blog,但是cnblog,blogs則不會替換

(6). 多項替換
同時對多個匹配都替換成某一字符串

:%s//(good/|nice/)/awesome/g? //good和nice都將被替換成awesome

(7). 確認(rèn)式替換
參數(shù)c讓替換進行交互請求,需要你選擇y,n,a,l,q

?

/**
?* 選擇說明:
?* y 替換且跳轉(zhuǎn)到下一個匹配結(jié)果
?* n 不替換且跳轉(zhuǎn)到下一個匹配結(jié)果
?* a 替換所有并退出交互模式
?* l 替換當(dāng)前并退出交互模式
?* q 退出交互模式
?*/
:s/{old-pattern}/new-text/gc


(8). 行首插入行號
把行首^替換成行號,可自定義具體形式
:%s/^//=line(".")/g

?

10. 專題三:大小寫轉(zhuǎn)換
??? 講這個,主要是覺得這個問題挺有意思的。

?

~??????????????????? //改變當(dāng)前字符并自動切換到下一個字符,大寫變小寫,小寫變大寫,可以一直按
gum?????????????????? //轉(zhuǎn)化為小寫,m指移動命令,如:
????????????????????? //guw?? 光標(biāo)后的一個單詞小寫化
????????????????????? //guG?? 光標(biāo)所在行到最后行全部小寫化
????????????????????? //gut=? 光標(biāo)后直到=之間的字符小寫化
????????????????????? //羅嗦一句,gu還可以與可視模式結(jié)合,小寫化所選區(qū)域
gUm?????????????????? //轉(zhuǎn)化為大寫,用法同上


11. 專題四:錄制
??? 這個其實很簡單,但也是很強大的功能,單獨柃出來說一下。

?

?

?


//為操作定義宏或者取別名
//這個命令的強大之處在于使重復(fù)復(fù)雜指令的簡單化了
q???????????????????? //按下q開始錄制
x???????????????????? //x是這個錄制的寄存器,x可以是其它字符
dd??????????????????? //刪除當(dāng)前行,這個操作可以自定義其他復(fù)雜的操作
q???????????????????? //錄制結(jié)束,現(xiàn)在dd這個操作被定義到了@x這個命令里了

?

12. 專題五:數(shù)字增減
??? 這個小技巧還挺有用的,比如說定義了一系列static final變量,而且時不時要中間插入一些新的變量,這些值一般都是遞增的,這時候這個技巧絕對比數(shù)字替換要方便。

?

//Normal模式下執(zhí)行
Ctrl + a?????????? //自增1
Ctrl + x?????????? //自減1


13. 小結(jié)
??? 工善其事,先利其器。
??? 先想到這些,必然有很多遺漏,后面想到了什么,我會隨時添加更新進來。

以上就是武林技術(shù)頻道小編介紹的Android中vim編輯器進階的使用, 有需要的朋友了解過后可以選擇嘗試,希望能幫到你。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 长垣县| 台中市| 枣庄市| 维西| 潜江市| 嘉善县| 江阴市| 鲁山县| 延庆县| 霍山县| 宝丰县| 监利县| 罗源县| 桂林市| 察隅县| 怀集县| 如皋市| 桓仁| 秭归县| 和政县| 砚山县| 长海县| 安福县| 渝中区| 平昌县| 土默特左旗| 华池县| 盘山县| 元朗区| 鄂温| 油尖旺区| 盈江县| 达孜县| 江西省| 阿拉尔市| 曲阳县| 融水| 文成县| 稻城县| 汶川县| 新兴县|