成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

vim

kk_miles / 3694人閱讀

摘要:光標(biāo)移動基本詞向前移動,光標(biāo)停在第一個字符向后移動,光標(biāo)停在第一個字符向后移動,光標(biāo)停在最后一個字符行首或行尾移動到行尾移動到行首,非空白字符移動到行首,第一個字符指定字符單行搜索下一個單個字符單行搜索上一個單個字符單行搜索下一個單個字符,

VIM 光標(biāo)移動

基本

h j k l

b   向前移動,光標(biāo)停在第一個字符 (backward)
w   向后移動,光標(biāo)停在第一個字符 (word)
e   向后移動,光標(biāo)停在最后一個字符 (end of word)

行首或行尾

$   移動到行尾
^   移動到行首,非空白字符
0   移動到行首,第一個字符

指定字符

f   單行搜索下一個單個字符 (find)
F   單行搜索上一個單個字符
t   單行搜索下一個單個字符,光標(biāo)停在前一個字符 (to)
T   單行搜索上一個單個字符,光標(biāo)停在前一個字符

匹配括號

%   移動到匹配的括號或移動到括號

移動到指定行

G    移動到最后一行
33G  移動到第 33行
gg   移動到第一行
40%  移動到40%
H    移動到屏幕內(nèi)第一行 (home)
M    移動到屏幕內(nèi)中間 (middle)
L    移動到屏幕內(nèi)最后一行 (last)

滾屏

  向上滾動半屏 (up)
  向下滾動半屏 (down)
  向下滾動一屏 (forward)
  向上滾動一屏 (backward)

簡單查找

/string      向下查找包含 string的詞
?string      向上查找包含 string的詞
/  向下查找 string
?  向上查找 string
n            重復(fù)前一次查找
N            重復(fù)前一次相反的查找
/        之前的查找
*            向下查找光標(biāo)所在處的詞,全詞匹配
#            向上查找光標(biāo)所在處的詞,全詞匹配
g*           向下查找包含光標(biāo)所在處的詞
g#           向上查找包含光標(biāo)所在處的詞

標(biāo)記:

m{mark}  講此處標(biāo)記為 mark,mark 為一個字母
`{mark}  跳到標(biāo)記 mark處,` 是1左邊那個鍵
"{mark}  跳到標(biāo)記 mark處所在行行首,"是單引號
 特殊的mark
    "  此次跳轉(zhuǎn)之前的起跳點
    "  上次編輯該文件時光標(biāo)最后停留的位置
    [  最后一次修改的起始位置
    ]  最后一次修改的結(jié)束位置

其他命令

:set number    顯示行號,左邊 (se nu)
:set nonumber  不顯示行號(se nonu)
:set ruler     顯示光標(biāo)位置,右下角 (se ru)
:set noruler   不顯示光標(biāo)位置 (se noru)

:set ignorecase    查找忽略大小寫
:set noignorecase  查找不忽略大小寫
:set hlsearch      查找高亮 (se hls)
:set nohlserch     關(guān)閉查找 (se nohls)
:set incsearch     鍵入目標(biāo)字符串時就開始查找
:set nowrapscan    搜索過程在文件結(jié)束時就停止

簡單修改

插入

i  在當(dāng)前光標(biāo)處插入
I  在當(dāng)前行第一個非空白字符前插入
a  在當(dāng)前光標(biāo)之后插入
A  在當(dāng)前行尾插入
o  在當(dāng)前行之下插入
O  在當(dāng)前行之上插入

刪除

d   刪除操作符 (delete)
c   修改操作符,刪除之后自動進入插入 (change)
dd  刪除一行
cc  修改一行
x   dl ,刪除光標(biāo)處字符
X   dh ,刪除光標(biāo)左邊的字符
D   d$ ,刪除到行尾
C   c$ ,修改到行尾
s   cl ,修改光標(biāo)字符
S   cc ,修改一整行
r   替換(刪除之后插入并回到 Normal)
.   執(zhí)行上一次所執(zhí)行的更改命令

復(fù)制

y    復(fù)制操作符 (yanking)
yy   復(fù)制一行
yw   復(fù)制word,包含之后空白字符
ye   復(fù)制word,不包含之后空白字符
yaw  復(fù)制word,包含之后空白字符
yiw  復(fù)制word,不包含之后空白字符
yab  復(fù)制一個小括號里面的內(nèi)容,包括括號本身
yib  復(fù)制一個小括號里面的內(nèi)容,不包括括號本身
ya{  復(fù)制一個大括號里面的內(nèi)容,包括括號本身
yi{  復(fù)制一個大括號里面的內(nèi)容,不包括括號本身
p    粘貼(put)

對齊

=    對齊操作符
==   對齊一行
n==  對齊n行
=a{  對齊一個大括號里面的內(nèi)容

大小寫替換

~     大小寫替換
g~    大小寫替換操作
g~iw  改變光標(biāo)處單詞大小寫
guiw  光標(biāo)處單詞變成小寫
gUiw  光標(biāo)處單詞變成大寫

命令計數(shù)器 n+命令

一個命令重復(fù)執(zhí)行
如:4x刪除 4個字符

操作命令符 +位移命令符

操作如:刪除 d,復(fù)制y ;位移如:詞語 w,$ 行尾
d$    刪除到句尾
4yy   復(fù)制4行
3dw   3次刪除一個單詞
d3w   一次刪除 3個單詞
3d2w  3次刪除 2個單詞

常用刪除命令

x(dl), X(dh), D(d$), dw, db, diw, daw, dG, dgg

visual 模式(主要功能就是選擇)

v 進入visual模式,移動光標(biāo)選擇操作文本范圍
V 進入visual行模式,選擇以行為單位
 進入visual塊模式,選擇塊

查找替換

查找命令

/, ?, n, N, #, *, g#, g*, gd, gD

替換命令

:[n,m]s/[src]/[dst]/[g][c]
[n,m]  表示一個范圍,從 n~m行中查找替換,[n,$]表示從第 n行之后
%      表示整個文件
[src]  要查找的詞, [dst]要替換的詞
[g]    替換所有的匹配,若沒有,只匹配第一個
[c]    替換前詢問
/      為分隔符,也可以用 +或# 來分隔

:s/src/dst/         替換當(dāng)前行第一個 src為dst
:s/src/dst/g        替換當(dāng)前行所有 src為dst
:n,ms/src/dst/      替換n~m行第一個 src為dst
:n,$s/src/dst/g     替換第n行到最后一行中所有 src為dst
:%s/src/dst/g       替換整個文件中所有 src為dst
:%s/src/dst/gc      替換整個文件中所有 src為dst 并詢問是否替換
:%s//dst/gc  與:%s/src/dst/gc一樣(全詞匹配)

正則匹配

*   匹配0以上之前的字符
+  匹配1個以上之前字符
=  匹配0個或 1個之前字符
?  匹配0個或 1個之前字符
.   匹配任何單個字符
<  匹配一個單詞的開始
>  匹配一個單詞的結(jié)束
s  匹配空白字符 
S  匹配非空白字符
d  數(shù)字[0-9]
D  非數(shù)字[^0-9]
x  十六進制數(shù)字 [0-9A-Fa-f]
X  費十六進制數(shù)字 [^0-9A-Fa-f]
l  小寫字符 [a-z]
L  非小寫字符 [^a-z]
u  大寫字符 [A-Z]
U  非大寫字符 [^A-Z]
a  字符[A-Za-z]
A  非字符[^A-Za-z]
[]  任何[]中的字符

更多

:help pattern

折疊

折疊方式

manual  手工定義折疊
indent  更多的縮進表示更高級的折疊
expr    用表達式來定義折疊
syntax  用語法高亮來定義折疊
diff    對沒有更改的文本進行折疊
marker  對文中的標(biāo)志折疊
set foldmethod=****   設(shè)置折疊方式
marker方式,需要用標(biāo)記來標(biāo)識代碼的折疊,系統(tǒng)默認是 {{{和}}}

折疊命令

zc      折疊
zC      對所在范圍內(nèi)所有嵌套的折疊點進行折疊
zo      展開
zO      對所在范圍內(nèi)所有嵌套的折疊點展開
zr, zR  折疊所有
zm, zM  展開所有
za, zA  折疊/打開當(dāng)前折疊
zi      折疊/展開所有
[z      到當(dāng)前打開的折疊開始處
]z      到當(dāng)前打開的折疊末尾處
zj      向下移動到下一個折疊開始處
zk      向上移動到前一折疊的結(jié)束處
zf      創(chuàng)建折疊
zf56G   創(chuàng)建從當(dāng)前行起到 56行的代碼折疊
10zf    創(chuàng)建從當(dāng)前行起后 10行的代碼折疊
10zf-   創(chuàng)建從當(dāng)前行起到之前 10行的代碼折疊
zf%     創(chuàng)建從當(dāng)前行起到對應(yīng)匹配的括號
zd      刪除光標(biāo)下的折疊,僅當(dāng) manual或marker 方式有效
zD      嵌套地刪除光標(biāo)下的折疊,僅當(dāng) manual或marker 方式有效
zE      除去窗口里的所有折疊,僅當(dāng) manual或marker 方式有效

foldlevel

"foldlevel" 是個數(shù)值選項:數(shù)字越大則打開的折疊更多
當(dāng) "foldlevel" 為 0 時,所有的折疊關(guān)閉
當(dāng) "foldlevel" 為正數(shù)時,一些折疊關(guān)閉
當(dāng) "foldlevel" 很大時,所有的折疊打開
"foldlevel" 的改變后立即生效。之后,折疊可以被手動地打開和關(guān)閉

文件

文件操作

:w    保存
:w!   強制保存
:w filename        將當(dāng)前緩沖區(qū)的內(nèi)容保存成文件 filename
:n1, n2, filename  將n1到 n2的內(nèi)容保存為文件filename
:q    退出當(dāng)前窗口,若改動,提示失敗
:q!   強制退出,放棄改動
:wq   保存后退出
:wa   保存所有
:qa   退出所有
:wqa  保存所有后退出
ZZ    相當(dāng)于:wq

編輯另一個文件

:edit file

多文件編輯

vim filename1 filename2 ...
:bn  跳轉(zhuǎn)至下一緩沖區(qū) (文件)( 最后一個 ->第一個)
:bN  跳轉(zhuǎn)到上一緩沖區(qū) (文件)( 第一個->最后一個 )
:bd  關(guān)閉當(dāng)前緩沖區(qū) (文件)
:n   跳轉(zhuǎn)至下一文件 ,如當(dāng)前文件為最后一個,提示錯誤
:N   跳轉(zhuǎn)至上一文件 ,如當(dāng)前文件為第一個,提示錯誤
:next, :previous    跳轉(zhuǎn)至下 /上一文件
:wnext, :wprevious  保存當(dāng)前文件并跳轉(zhuǎn)至下 /上一文件
:last, :first       跳轉(zhuǎn)至最后一個 /第一個文件
:files   列出當(dāng)前已打開文件
:args    給出進入 vim時命令行參數(shù);當(dāng)前正在編輯文件名用 "[]"列出

窗口分隔

s  水平分割窗口
v  垂直分割窗口
w  切換至另一窗口
h  切換至左側(cè)窗口
j  切換至下方窗口
k  切換至上方窗口
l  切換至右側(cè)窗口
H  移動當(dāng)前窗口到左邊
J  移動當(dāng)前窗口到下面
K  移動當(dāng)前窗口到上面
L  移動當(dāng)前窗口到右邊
:split filename    水平分隔窗口打開 filename
:vsplit filename   垂直分割窗口打開 filename

標(biāo)簽式編輯

:tabnew filename  在新標(biāo)簽中打開
gt, :tabnext      切換至下一個標(biāo)簽
gT, :tabprevious  切換至上一個標(biāo)簽
:tabc             關(guān)閉當(dāng)前標(biāo)簽
:tabl             切換至最后一個標(biāo)簽
:tabmove n        切換到第 n個標(biāo)簽,默認標(biāo)簽編號從 0開始

目錄

netrw 插件

netrw 插件是vim的標(biāo)準(zhǔn)插件,在 .vimrc中只要設(shè)置了
set nocp " 不與vi兼容
filetype plugin on " 允許插件
就可以使用 netrw插件了 

打開目錄

Ex[plore]   打開當(dāng)前目錄或指定目錄
Se[xplore]  水平分割并打開當(dāng)前目錄或指定目錄
Ve[xplore]  垂直分割并打開當(dāng)前目錄或指定目錄
Te[xplore]  新建標(biāo)簽并打開當(dāng)前目錄或指定目錄

目錄操作

   進入目錄
  試圖刪除文件 /目錄
-      上一級目錄
a      在正常顯示,隱藏和顯示三種方式間切換
c      使瀏覽中的目錄成為當(dāng)前目錄
d      建立目錄
D      試圖刪除目錄
i      在瘦、長、寬、和樹形的各種列表中切換
  刷新目錄列表
o      打開新瀏覽窗口,進入光標(biāo)所在目錄,使用水平分割
p      預(yù)覽文件
P      在前一次使用的窗口里預(yù)覽
r      反轉(zhuǎn)排序順序
R      給指定文件 /目錄換名
s      選擇排序方式:按名字、時間、文件大小排序
S      指定按名字排序的后綴優(yōu)先級
t      在新標(biāo)簽頁里打開光標(biāo)所在文件 /目錄
v      打開新瀏覽窗口,進入光標(biāo)所在目錄,使用垂直分割

創(chuàng)建宏

q +  + [一系列命令] + q
 指用戶自定義的 a-z中的一個寄存器
如:qa...q

運行宏

@ +     運行寄存器中的宏
@@                重復(fù)運行上一次宏
10@a              重復(fù)運行寄存器 a中的宏10 次

MAP

映射模式

普通模式
可視模式
操作符等待模式
插入模式
命令行模式

映射模式代號

  普通、可視和選擇、操作符等待
n        普通
v        可視和選擇
s        選擇
x        可視
o        操作符等待
!        插入和命令行
i        插入
l        插入、命令行和 Lang-Arg模式的":lmap" 映射
c        命令行

命令

map {lhs} {rhs} 把普通、可視和選擇、操作符等待模式下的 lhs命令映射成rhs,如:map tn :tabnew
noremap      noremap對rhs不會重新掃描映射
unmap {lhs}  取消對lhs的映射
mapclear     取消所有 map映射
nmap         只作用于普通模式下的映射
imap         只作用于插入模式下的映射
nnoremap     只作用于普通模式下的 noremap
nunmap       只作用于普通模式下的 unmap
nmapclear    只作用于普通模式下的 mapclear

特殊參數(shù)

, , ,                 
閱讀需要支付1元查看
<