- 积分
- 16843
在线时间 小时
最后登录1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?开始注册
x
linux VIM命令:
5 _* Q. G+ A3 Mvim 在命令行中输入vim,进入vim编辑器
" E- t0 d- T, P) ^) G+ sEsc 退出i(插入)命令进行其他命令使用2 S# U* ^# ^, O( `( d
:sh 进入shell命令行,运行完命令后ctrl+d退出又一次进入vim编辑继续编辑在shell命令下,* p% R ~- I7 R) G5 J
x( p0 K% k* J: U% U! b- P运行ctral+l完毕清屏2 S& Z1 c" L: @0 c4 C' `7 _
:set number或者:set nu 使编辑中的文件显示行号
+ ~2 r7 q ^5 ~' g" z9 y: |:set nonumber或者:set nonu 与上一条命令相反,不显示行号
( }8 @6 @3 p/ o:help i 查看插入命令帮助; f" \" R' q# N, n7 h5 |
/Fedora 查找Fedora字符
8 k1 a7 @; f# |5 e' N: P:s /Fedora/Redhat 将Fedora字符替换为Redhat(仅仅替换在光标所在的行)
: K `( V" Q: o9 t:%s/ro../r 将ro..替换成r。.表示随意字符% ?$ b: P4 E) \* @0 Y
:1,.s/redhat/fedora .号表示当前行,即光标所在行 #将第1行到当前行(.)第一次出现的redhat字符取代为fedora
$ ]' S8 ?# T( J. ?( u% v/ n. z" e:1,.s/redhat/fedora/g 将第1行到当前行(.)全部出现的redhat字符取代为fedora,g4 ~% s: e5 o& p' Q8 m
全局标志7 X a7 `9 M& ~% H- i( H5 h
:1,$s/redhat/fedora/g $表示最后一行#将第1行到最后一行全部出现的redhat字符取代为fedora1 C$ p3 I8 g: u' H
:%s/redhat/fedora/g 同上一个命令: } f' _2 z* ?) i" X; m
:%s/\/fedora/g 将第1行到最后一行全部出现的redhat字取代为fedora#字,而不是字符
2 _- a; ?$ W0 ~7 S& \( {:%s/ro/\r&/gc %表示全文,s表示替换。ro替换为换行符。&表示之前要替换的字符ro。g表示一直替换不加g仅仅替换一个,c表示确认是否替换。
" D6 J/ }- P- Y9 k$ z7 O5 b整句话意思是将ro替换成换行符后跟ro
6 Q1 n. y( I i3 W% R:f #显示文件内容,状态等等#同ctrl+g命令
4 @. E8 z4 z5 B3 Rvi filename 表示编辑filename文件。假设不存在则创建该文件,假设在进入vi时没有指定文件名称能够进入后用":n filename"来指定文件名称。
6 @0 _' y8 Q# y! C& b/ s& x! y1 n- S2 y" ^& C( E
" U+ F$ i- c, i:e! 放弃全部改动,不包括已保存的
9 k% U+ h6 f2 d E:e 文件名称 打开指定文件 Q7 ^# e9 Y' y7 F) z0 ], Z0 O Y
D 删除当前行光标后的全部字符) |+ a* D3 {) f% ^" w% R+ s* O% M# W/ K
y与y$同样 表示复制本行光标開始到行末的字符
; x8 L' L1 j% f* R1 `; z/ J8 M) J:w! 文件名称 将当前显示文本全部覆盖已存在的文件7 `7 C& I6 ?. f0 p, H$ l
:n,mw! 文件名称 将当前显示文本的第n到第m行强制写入指定文件
. ~3 F( u/ D/ X+ h; hw 光标跳到下个单词的首& Y- C# {/ X9 e$ o& U: L
e 光标依次跳到单词末尾 ?, J1 g. h5 e8 T1 x
替换文本
! C+ O$ I7 ?0 E5 `2 |cc 替换当前行
f, D; U7 N& S! Z2 I+ S, M; ^C与c$ 替换当前行中从光标处到航模的全部字符. v0 I, B4 a, [
cw 假设光标在单词头部或中间,从光标处替换到单词尾部。假设光标在单词尾部。则替换尾字母2 j E5 U6 {+ g" e
ce 假设光标在单词头部或中间。从光标处替换到单词尾部,假设光标在单词尾部,则替换从尾字母到下一个单词尾部' W, u8 m# ?+ u) C* J
cb 假设光标在单词中间则从光标处替换到单词头部,假设光标在单词头部。则替换之前一个单词; n* Q; H0 X- c4 a) `
3 |: y6 W7 h. T缓冲区
6 k3 n7 n! u# ?: U: _. t缓冲区分为数字缓冲区和字母缓冲区
2 D9 W1 Q( h( T. e数字缓冲区:
9 r8 d7 B9 j4 S; q2 E- K0 z每一次dd删除操作都把删除的内容存入一个数字缓冲区,1号缓冲区永远是近期一次的删除内容。每次删除操作会把1号缓冲区的内容存入2号缓冲区。2号存入3号中。依次类推。调用能够用命令"np(n代表1-9中的数字)
. N/ i( p' F" n) U字母缓冲区:
7 |' w+ K3 z4 x8 M字母缓冲区有26个,分别为a-z
; ? ~$ H7 n2 }+ u: R2 T4 Q命令"add表示删除本行。将本行存入a缓冲区。
2 J( w8 ?7 z0 Y5 e" K
7 v5 s1 O* [1 k' T$ J) A( X. F调用能够用命令"ap
, k( j- T4 c& f* o9 D7 r9 W+ u9 @: Q
光标控制命令 J0 t5 a7 v0 [: B
命令 光标移动
3 C7 R! a2 ~3 }& E:向上 能够反复输入上一个命令5 T. _/ q/ M; a
h 向左移一个字符
7 ?: i8 m# H5 @ B, h2 Vj 向下移一行& Y b$ k" P/ j3 q6 m; @5 ?
nj 向下移动n行& k3 U( d# s+ A* G/ z% n
k 向上移一行
0 G2 t0 k* k3 @ }, o0 _; I. u$ Yl 向右移一个字符2 w7 ~ w9 `6 u- g5 J, C5 T: Y
gg或:1 移动到文件第一行
: L! m4 Y$ I# g5 b5 {G 移到文件的最后一行, A! R" C) `' o. B% s ?- X5 B% T; g
w 移到下一个字的开头
" O# S* f/ U1 \# zW 移到下一个字的开头。忽略标点符号
3 R4 ?/ J9 Z* h6 T+ J& xe 移到下一个字的结尾8 u G- G% I0 T& w, p
E 移到下一个字的结尾。忽略标点符号3 |* @, u7 ^! Q; @
b 移到当前字或前一个字的开头
0 D* D. a6 j# q0 Q6 vB 移到前一个字的开头,忽略标点符号
" E& s. u5 T B I- H+ zL 移到屏幕的最后一行
3 {" o) m# @( |; ^M 移到屏幕的中间一行
# x0 c2 C7 q0 v7 B. f. y! b1 ]$ m# FH 移到屏幕的第一行
@ P" n9 ` l0 l, ^3 m* g( 移到句子的开头( j2 B% V: ^% j
) 移到句子的结尾
9 ^0 d/ [# M4 }/ ~- j8 i: u1 I: \{ 移到段落的开头: v E- }; S4 t
} 移到下一个段落的开头! y5 e( @- t8 N2 F& L
0(数字), | 移到当前行的第一列
% E" Q8 j: k8 Q^ 移到当前行的第一个非空字符" s1 U( l0 i0 {
$ 移到当前行的最后一个字符$ ]$ e5 j. u( L0 U
+, Enter 移到下一行的第一个字符2 h. W$ U3 Q1 i' q, b6 _
- 移到前一行的第一个非空字符
2 ?( |1 |( D- d; ~* a在 vi 中加入文本6 o6 l1 J9 U+ r
命令 插入动作
K' @$ ^" l( Y4 Ka 在光标后插入文本, V: G4 w/ { n* L
A 在当前行尾插入文本
/ T! n& d: y6 S6 f6 Y7 ], \i 在光标前插入文本
$ Y9 l( X s7 H; U# T3 A- O5 u$ LI 在当前行前插入文本/ s* u. q3 n0 L8 Y
o 在当前行的下边插入新行
5 M; @$ q. \: p3 [% M8 T- i: GO 在当前行的上边插入新行9 T ?4 F, s+ B, U# ]& o
s 删除光标所在处字符,并进入插入模式
2 C J& n) d7 g8 @# V3 [) Z0 m' JS 删除光标所在的行。并进入插入模式
$ g0 f/ E) _# l* D( i3 A:r file 读入文件 file 内容,并插在当前行后
$ n( j4 P Y5 a- Q:nr file 读入文件 file 内容,并插在第 n 行后8 }/ M/ _* k; I$ V/ L. g% C7 J
Esc 回到命令模式
1 B# y) X- e9 g- \# Y) F在 vi 中删除文本; H0 F3 \" a* M1 q
命令 删除操作
6 H, `, s& {3 f& m6 y0 i9 sx 删除光标处的字符,向后删除+ G9 z3 E3 j1 n" Q ~0 u x5 ]
nx 删除本行光标開始之后的n个字符,不包括其他行
, T: y' M1 ~" G4 _X 删除光标前的单词,向前删除$ L; c K3 i9 D" M% e, g0 U
dl 删除一个字符
; ~4 P+ b' s @8 E6 Odw 删至下一个字的开头
* g, ?$ e8 t* K- Udaw 删除当前单词
; T3 i+ W1 y7 ?2 `' F. Hdnw或ndw 删除之后n个单词; t# z5 m7 ]8 `" m9 y* b6 j6 y
dap 删除一个段落1 ]$ ?$ t. _0 k9 Q3 Q
dG 删除该光标行及之后直到文件结束
9 r+ p3 |0 ?0 \& Z4 o2 Mdd 删除整行
5 N0 p, F# w; D5 i2 _: Q4 J5 Kndd 删除光标下n行2 r. t# }: c! A x
db 删除光标前面的字
6 j( _; G$ c/ p0 U( H:n,md 删除n行到m行
6 z ^# l m& F7 A( bd, d$ 从光标处删除到行尾" h3 x3 j! ?+ T! h& R
d$ 从光标处删除到行尾
5 d( u5 L; {) Ld,d^ 从光标处删除到行首/ ^& s, k& L1 w s9 I) {
d^ 从光标处删除到行首7 y: d+ M1 d. k3 }3 K5 S+ Y5 d! }
改动 vi 文本
8 q$ g- \, b6 s8 d' d2 A& Q U每一个命令前面的数字表示该命令反复的次数
* {1 d9 s+ p% ~! k* r) S3 D7 p* o命令 替换操作7 H. J9 @. ^: w+ L5 C5 ~
g~~ 光标所在行字母大写和小写反转/ ^! m& a4 R9 z1 V# q
guu 光标所在行字母变小写
# G# V% Q5 m! h9 b1 e! E/ xgUU 光标所在行字母变大写/ x+ ^% x$ P6 C. W0 }/ j
gUaw 把当前单词转换成大写
+ g; Q( p. q7 h; F5 NgUap 把当前段落转换成大写# }9 z' u, ?& J7 }0 W
rchar 用 char 替换当前字符
! S/ { g0 Q5 i' `! [# ^R text escape 用 text 替换当前字符直到按下 Esc 键+ s1 M' X/ ?& Z- t2 r
stext escape 用 text 取代当前字符 a# q. f g" U! N/ C) W" I
S 或 cctext escape 用 text 取代整行4 \9 W' s7 a, @
cwtext escape 将当前字改为 text
( t6 i& x/ ?4 E/ U* M# Q* q: E; rCtext escape 将当前行余下的改为 text
3 K& z! I( W' Z3 T. @( scG escape 改动至文件的末尾
. g% Y1 {2 @. R6 A4 @( h在 vi 中查找与替换4 t X' _# o O2 J- W7 H
命令 查找与替换操作# a! B9 J2 y# p/ c5 _$ _
f字符 在本行查找下一个字符
, B! n% n- a( j: [3 C& q6 ~; 移动到下一个用f查找的字符,与上面的f配合使用' v! t! @/ n; K+ _
, 当移动到上一个f查找的字符。与;相反2 U) x+ x% J4 q' o
* 全文查找移动到和光标当前的单词一样的下一个单词
, ]# t3 @- e! \4 w3 | F/text 在文件里向前查找 text
1 H" {) ]. ^' G; q7 u6 W?text 在文件里向后查找 text
% d" {; _7 F. v. Tn 在同一方向反复查找$ W+ ]8 X5 K0 q: t# a( T. T3 A! U
N 在相反方向反复查找
, f Z; o: _; E& V! `, `! o$ j4 B:set ic 查找时忽略大写和小写0 c4 @2 n' \* s2 h
:set noic 查找时对大写和小写敏感
. H1 C2 k4 k- k `:ranges/pat1/pat2/g 用 newtext 替换 oldtext
7 n, Q2 }. V' A( n+ ?" {:m,ns/oldtext/newtext 在 m 行通过 n。用 newtext 替换 oldtext
7 Z# R3 N, y1 I' `6 ^& 反复最后的 :s 命令+ k5 a% h/ w' h3 ~2 H2 C$ q1 {! S
:g/text1/s/text2/text3 查找包括 text1 的行。用 text3 替换 text2, [1 h# y i8 ?: J
:g/text/command 在全部包括 text 的行运行 command 所表示的命令 R* F$ ~( C$ }
:v/text/command 在全部不包括 text 的行运行 command 所表示的命令3 B$ p o5 w. D, Y- ?0 W
在 vi 中复制文本
4 A' ?7 Y* ]8 H命令 复制操作* ~8 f* @3 t! r/ q
yy 将当前行的内容放入暂时缓冲区
% t- j6 I0 w4 j- O, x* Wnyy 将 n 行的内容放入暂时缓冲区' C Z7 ]& D4 T& F2 s
p 将暂时缓冲区中的文本放入光标后' Z2 F2 H }( @) c: J- C
P 将暂时缓冲区中的文本放入光标前% I$ x" i2 q1 l3 S! s
np 将暂时缓冲区中的文本放入光标后n次
- |$ Y0 p i$ i! nnP 将暂时缓冲区中的文本放入光标前n次
/ D& n* w! s: C, w在 vi 中撤消与反复; G, ?6 P3 o+ e/ D
命令 撤消操作% r6 Q- U7 l' [& |. g
u 撤消上一步操作% h+ U# ?$ V: D' N6 i! P; \
U 撤消当前行的全部改动
# B$ Z, B# F3 E& G! C, ectrl+r 反复键入,和撤销相反
( C( `7 T- f3 W0 ?% g. 反复最后一次改动+ ~4 \0 q! F% ?5 t! t/ ~
, 以相反的方向反复前面的 f、F、t 或 T 查找命令% O' W. j7 M# v+ ]+ Q
; 反复前面的 f、F、t 或 T 查找命令 ]! t( G# F4 M2 W
n 反复前面的 / 或 ? 查找命令4 h" ~; ~' Y9 C0 a2 x& M3 G- J- @9 q7 ?
N 以相反方向反复前面的 / 或 ? 命令
4 n( }! h5 |7 Y: ^- n7 {: I7 a) a保存文本和退出 vi G# G2 V4 T; g9 e" D; b6 q
命令 保存和/或退出操作
" o3 z0 E% p. Q% e:w 保存文件但不退出 vi
* Q/ k7 \" e" l- R; `4 i K:w file 将改动保存在 file 中但不退出 vi: H9 |. H2 R" V" b' K6 ~: d# N
:wq 或 ZZ 或 :x 保存文件并退出 vi! i& q' }0 |6 C( d; c
:q! 不保存文件,退出 vi
) G. E2 \) v/ Q0 t+ K6 `$ z:e! 放弃全部改动,从上次保存文件開始再编辑
2 D" ?( U% \ m$ ?. ]; b:set go= go表示gui option的缩写。等于空就是什么都没有
& k' m3 ?1 T+ [1 ^vim file1 file2...filen能够打开多个文件(在shell中输入的)
: ]* z" ^6 F& t- @4 avim + filename 进行文件最后一行进行编辑
8 d4 b9 J' E: w! x0 Y1 y2 U6 w( lvim +n filename 进入文件第n行进行编辑0 p& w7 f; l) `/ d4 E( v' ^ ~
:e xx.txt 打开某文件
& q% V$ ]5 K- F- l0 `:open file 打开某文件,同上
8 V) K6 h6 N+ t:tabnew D:\text.txt 新选项卡中打开某文件,输入:tabnew D:\t再按tab,会自己主动补全text.txt。假设不正确再按几次tab,直到正确为止。
7 O2 B L% S3 f:bn 文件切换,下一个文件% C2 Z# o4 _5 j5 Y" z8 I% Y
:bp 文件切换。上一个文件
4 e( i) i+ h, m/ C, M) J8 {! Pctrl+6 文件切换,下一个文件
5 [- X1 N( w3 O) N7 `/ l. F4 V:split 多个文件上下排列,能够通过:q退出当前窗体
9 j6 G. a7 }: n:vsplit 多个文件左右排列
3 q1 f. ~ ^7 i$ a5 x6 }vi 中的选项
* J1 f. ^% {# q" c! d }选项 作用
/ V+ V+ R" b/ ~/ W/ G. t- m7 C:set all 打印全部选项
4 G: g2 M8 E7 R8 n# G) H; s1 b& Q:set nooption 关闭 option 选项# L4 a8 g& X: ^1 l" z# q
:set nu 每行前打印行号. ^: W2 f4 K0 ?! ]; o
:set showmode 显示是输入模式还是替换模式3 P3 P2 m5 {; L0 {5 Y# Z
:set autoindent 继承前一行的缩进方式。特别适用于多行凝视
& C8 z5 }% Q3 K" }: A:set smartindent 为C程序提供自己主动缩进
- ]+ }+ x K# G( Q:set list 显示制表符(^I)和行尾符号! {7 u$ \9 S3 F9 T/ `
:set ts=8 为文本输入设置 tab stops
+ }( D. U$ I6 F4 T& x% i:set window=n 设置文本窗体显示 n 行 y- C( R7 \, U8 x# J# A, h
vi 的状态) L; I$ ^! v* i" U
选项 作用
# g0 p* q: W- ?+ Q0 Q# c( h0 xctrl+g 显示文件名称、当前的行号、文件的总行数和文件位置的百分比, u. o6 T2 y2 n9 ^
:l 使用字母 "l" 来显示很多的特殊字符,如制表符和换行符1 o# T! x3 m* ~8 M- t# E+ V
在文本中定位段落和放置标记
4 \1 h5 z; C# Q8 A/ s; H- N& |: m$ ^选项 作用
. f6 \2 A4 K+ z: r- M) V0 t{ 在第一列插入 { 来定义一个段落! M9 S- p( k+ [5 s/ Q
[[ 回到段落的开头处
+ m* X8 D! G! H- N% T]] 向前移到下一个段落的开头处& c/ g9 K$ a7 e+ p. S/ Z6 E$ ^ g9 F x
在 vi 中连接行# f) r; O% P0 Y, E- K" k V
选项 作用1 ~3 \5 q7 i' i; q- t8 c
J 将下一行连接到当前行的末尾
+ `# r0 A# o! ?, I/ KnJ 连接后面 n 行6 Q) [, D) {4 K n9 [; Z
光标放置与屏幕调整
+ }, V* ^& y& C% l% f# n& t4 N* I选项 作用. j: S& L+ D9 H# B- I8 `3 `
H 将光标移动到屏幕的顶行
3 X2 V3 M: L) m, j% c F: lnH 将光标移动到屏幕顶行下的第 n 行' r, @' F, L/ X
M 将光标移动到屏幕的中间
9 a% x: i+ m5 J4 W3 |) qL 将光标移动到屏幕的底行
1 G( B/ [+ d4 o3 z3 N% snL 将光标移动到屏幕底行上的第 n 行5 A# S* _4 Z! y4 l, @6 ]1 N8 y
ctrl+e 将屏幕下滚一行
/ N3 e$ q- ~, o4 dctrl+u 将屏幕上滚半页
- x" Y7 u- F- H( cctrl+d 将屏幕下滚半页) H- b; l4 T$ a7 q, w
ctrl+b 将屏幕上滚一页: C) S1 [$ a* D Z# L2 t
ctrl+f 将屏幕下滚一页
3 h. ` F& T* `* h: l0 j _ctrl+o 退出插入模式进入普通模式,操作后又进入插入模式3 w! D6 l1 F' ]1 p1 i
ctrl+p 编辑模式下自己主动补全- T7 L6 I6 [& k# t' F8 h! h2 ?
zz 重绘屏幕,使当前行移动是屏幕正中间
. p4 h% b2 V. I$ J- cz-return 将当前行置为屏幕的顶行
: M5 q2 j! _5 bnz-return 将当前行下的第 n 行置为屏幕的顶行
4 o6 o1 N8 D2 U& T2 X4 rz. 将当前行置为屏幕的中央8 n0 `6 U) q/ C9 D' b- D# p) {
nz. 将当前行上的第 n 行置为屏幕的中央0 ~ ?+ X7 V; m& x/ a( f! `5 B
z- 将当前行置为屏幕的底行1 T: y! Z( A9 ?- N5 x
nz- 将当前行上的第 n 行置为屏幕的底行
, E( B0 q3 T. U2 n! N6 `' k:syntax on 语法高亮% v; h* Q# |8 Z: e& L
:syntax enable 语法高亮
+ p+ |3 s% T4 J( a2 v `8 P1 W:syntax clear 取消高亮; i1 h* P8 M1 u& ~6 Z# r6 ~; p
:color color后加空格然后按table来切换配色方案
. ~" ^& c$ ]/ q. L7 Q1 |:set hls 高亮查找的单词
. K2 v% y: J- D, _$ l" X B. a; e* W6 B, z" D6 |: O
宏
+ y; H! M. t, C( L1 L4 ^ o6 mqa(q表示開始录制宏,宏的名字为a)% c I- }$ p$ p) N, }- K2 O) C- t8 ?
再记录操作- {: K% a" M a. A
最好按q(表示宏录制结束)+ p+ K I8 f$ D3 B
使用:@a,宏运行一次。) b. f, X8 U2 w/ o/ l/ ?
7 s& O& T" m( } Z7 H+ c6@a。表示运行6次宏a。
" p# H$ g4 ^: D3 L, \- N
# v1 K% q; c2 F* p$ F1 O7 ~vi 中的 shell 转义命令# K' A( W( J) F8 v E/ A
选项 作用- T) s" R! C! I ?
:!command 运行 shell 的 command 命令,如 :!ls
6 S) d; i' D5 m- d" R:!! 运行前一个 shell 命令' }1 H0 H* G0 \, ~& \
:r!command 读取 command 命令的输入并插入。如 :r!ls 会先运行 ls。然后读入内容9 y! S& N/ |0 q% M' p% i- }
:w!command 将当前已编辑文件作为 command 命令的标准输入并运行 command 命令。如 :w!grep all0 j( B* Z; } @& V: |, Y
:cd directory 将当前工作文件夹更改为 directory 所表示的文件夹& \9 w" B' b/ Y, h0 {! M: ^1 P6 b
:sh 将启动一个子 shell。使用 ^d(ctrl+d) 返回 vi
3 d' A# Z. G2 w, G" S2 j/ r# j9 s:so file 在 shell 程序 file 中读入和运行命令
) M# e4 C; {5 l+ U. x- \vi 中的宏与缩写
, @5 q% X+ E4 `$ }(避免使用控制键和符号。不要使用字符 K、V、g、q、v、*、= 和功能键)
/ X/ G/ D6 w: ?9 ]7 b选项 作用; V; K: T2 @6 M! e9 ?; B
:map key command_seq 定义一个键来运行 command_seq,如 :map e ea。不管什么时候都能够 e 移到一个字的末尾来追加文本' ~4 L! E, i, J/ g+ [# l/ ?1 B U
:map 在状态行显示全部已定义的宏
0 ]& d9 j# A, O2 e$ Y:umap key 删除该键的宏8 S J7 {1 v9 Z6 L) S$ T
:ab string1 string2 定义一个缩写,使得当插入 string1 时,用 string2 替换 string1。当要插入文本时,键入 string1 然后按 Esc 键,系统就插入了 string2
' D1 J" }% R* X/ C8 p& _:ab 显示全部缩写
0 y( @4 e9 V" N& U:una string 取消 string 的缩写: Z* b! w2 y* d( r# I% _
在 vi 中缩进文本% u5 K7 O- ~! x
选项 作用- a, z# Y! {! _# N' X
ctrl+i或 tab 插入文本时。插入移动的宽度。移动宽度是事先定义好的% I2 i% a8 ?. D0 u; h& j8 m
:set ai 打开自己主动缩进5 e% L7 ~1 F7 k1 f- C4 `5 E2 [
:set sw=n 将移动宽度设置为 n 个字符: p# I; V4 m! M+ n+ A1 w+ P' K# \
>> 使当前行向右移动一个宽度5 W$ o: c5 T; s, c8 F* H
n>> 使 n 行都向右移动一个宽度,比如 3>> 就将接下来的三行每行都向右移动一个移动宽度。假设省略n表示使当前行向右移动一个宽度。& | T. ]9 {5 ?) M
0 h" U) b1 w* D2 Q0 S
4 Y9 P" D% H/ F# b3 e q: P4 P>G 使当前行至文档结尾都向右移动一个宽度8 P @$ l6 S' G
; k9 H* @ u3 j( K
可视模式+ p" K4 L& M5 m. K- |- B
为了便于选取文本。VIM 引入了可视(Visual)模式。5 m2 a& s1 v$ m1 L7 v" ^" F
+ n# [: w t2 k/ \, S要选取一段文本,首先将光标移到段首。在普通模式下按 v 进入可视模式。然后把光标移到段末选中内容(移到行首^,行末$)。须要注意。光标所在字符是包括在选区中的。5 J' F% z" a- A6 [1 L
' D, r$ S! U: v- b1 U% V这时能够对所选的文本进行一些操作,经常使用的(可视模式)命令有:+ y9 i" e f/ M' F
x或d 剪切(即删除,同一时候所选的文本进入剪贴板) ! \. I" l. @: m: b" s& C( T
y 复制 * `" y: ]& N' S1 R: n K: W
r字符 全部字符替换为新字符
/ x2 H: T. Z1 G4 I1 {% F, d/ su U ~ 各自是全部字母变小写、变大写、反转大写和小写
) u( f+ m: A [$ V/ x当输入了命令以后。VIM 将回到普通模式,这时能够按 p 或 P 进行粘贴。普通模式下有关复制和粘贴的命令:# T w8 `) h' f1 r5 J/ k
v 进入可视模式 6 V6 [% ^9 R2 y" N2 O
p或P 在当前位置粘贴剪贴板的内容,p 粘在光标所在字符后面,P 粘在前面 * w1 d% H. l' f/ {3 F: N
不得不承认,尽管引入了可视模式。复制和粘贴在 VIM 中仍然是比較麻烦的操作,这或许是 VIM 唯一的缺点。此外,VIM 还引入了选择(Select)模式。跟可视模式相似。 |
|