|
|
linux VIM命令:6 M3 Y; A' x8 ~. N7 x B
vim 在命令行中输入vim,进入vim编辑器; V) l6 h9 E1 G9 J1 t/ t3 ~1 P b7 S
Esc 退出i(插入)命令进行其他命令使用: ?2 Q1 e$ ^1 ~$ I5 h5 a
:sh 进入shell命令行,运行完命令后ctrl+d退出又一次进入vim编辑继续编辑在shell命令下,
; L, R5 }; Z) f# n
7 u( M2 P- ]5 _: I运行ctral+l完毕清屏) O' X8 e t2 g& Q! d2 {( k0 k8 w7 f8 K
:set number或者:set nu 使编辑中的文件显示行号( J$ z2 E7 n7 m9 a0 t: k* S
:set nonumber或者:set nonu 与上一条命令相反,不显示行号
- y" p9 I) `/ l% q! v4 {:help i 查看插入命令帮助' m8 V! e4 u9 f q$ O
/Fedora 查找Fedora字符
' L/ [, D# W0 T7 p' B! O% G" F:s /Fedora/Redhat 将Fedora字符替换为Redhat(仅仅替换在光标所在的行)
+ Y5 g! g) X- ~3 u:%s/ro../r 将ro..替换成r。.表示随意字符
4 K4 s; z' L( u:1,.s/redhat/fedora .号表示当前行,即光标所在行 #将第1行到当前行(.)第一次出现的redhat字符取代为fedora
- T) E' Y7 [9 M3 n' ^, W:1,.s/redhat/fedora/g 将第1行到当前行(.)全部出现的redhat字符取代为fedora,g) j0 G1 V' O' \+ t- `7 \) P
全局标志
: {; U6 z! \5 E5 F:1,$s/redhat/fedora/g $表示最后一行#将第1行到最后一行全部出现的redhat字符取代为fedora
* g4 C& Z& `/ x) h2 f' B# q, S:%s/redhat/fedora/g 同上一个命令% x G/ r. l7 s/ ^8 _% Y
:%s/\/fedora/g 将第1行到最后一行全部出现的redhat字取代为fedora#字,而不是字符# `" _2 R, f% M8 ?
:%s/ro/\r&/gc %表示全文,s表示替换。ro替换为换行符。&表示之前要替换的字符ro。g表示一直替换不加g仅仅替换一个,c表示确认是否替换。
" Z6 c/ j2 y! D( P整句话意思是将ro替换成换行符后跟ro
/ i; k+ W+ |7 @9 Q( A' f:f #显示文件内容,状态等等#同ctrl+g命令! V3 T4 y8 l- }* C5 @
vi filename 表示编辑filename文件。假设不存在则创建该文件,假设在进入vi时没有指定文件名称能够进入后用":n filename"来指定文件名称。
% t, ?, k/ R, } f2 c: N& B( d: u! S
' q; C4 t: ^+ D+ d0 M# a7 g) I- n/ k; z( {# K
:e! 放弃全部改动,不包括已保存的" p( F2 M3 {7 d; p( @+ M
:e 文件名称 打开指定文件7 {4 s) s3 R K) a, e0 k# K
D 删除当前行光标后的全部字符 Q( n) P' w, [- }/ E' @
y与y$同样 表示复制本行光标開始到行末的字符$ G3 t* c I; Z( A0 X2 \* J
:w! 文件名称 将当前显示文本全部覆盖已存在的文件
7 \. k! X$ _: j% u:n,mw! 文件名称 将当前显示文本的第n到第m行强制写入指定文件
! M5 Z! G$ _6 w+ ?1 sw 光标跳到下个单词的首
, P' W+ _, R) d% P9 ee 光标依次跳到单词末尾 ! B1 c, K7 l7 {9 U/ H
替换文本7 f5 t7 T& L: Q/ H% N, A
cc 替换当前行
, B: C8 k' ^8 DC与c$ 替换当前行中从光标处到航模的全部字符% \1 M. J+ r7 |1 V" j" g& U: p
cw 假设光标在单词头部或中间,从光标处替换到单词尾部。假设光标在单词尾部。则替换尾字母 b4 G* L" u# \5 [* h- I: W
ce 假设光标在单词头部或中间。从光标处替换到单词尾部,假设光标在单词尾部,则替换从尾字母到下一个单词尾部5 l" \& i9 k4 b9 v3 ^1 Q
cb 假设光标在单词中间则从光标处替换到单词头部,假设光标在单词头部。则替换之前一个单词
0 \8 s* a5 H. W) w1 Y' y6 R
9 ^& g8 B6 a3 C# H2 ]. q缓冲区
, e2 Z+ V% X8 W( y4 e% [缓冲区分为数字缓冲区和字母缓冲区2 }/ S. y5 T! U9 T$ S9 W
数字缓冲区:, q4 y( h7 G' e, Q$ B8 c
每一次dd删除操作都把删除的内容存入一个数字缓冲区,1号缓冲区永远是近期一次的删除内容。每次删除操作会把1号缓冲区的内容存入2号缓冲区。2号存入3号中。依次类推。调用能够用命令"np(n代表1-9中的数字)" |, C0 \8 v; d" X, K. M4 Q6 }
字母缓冲区:
, f; d! i1 J6 [/ @7 d+ o字母缓冲区有26个,分别为a-z9 e6 ?- |4 w" _; L! i0 G
命令"add表示删除本行。将本行存入a缓冲区。; n0 W- f7 v5 [$ u
+ Y/ z$ n, [2 R8 X, y( F L调用能够用命令"ap5 `" |& ]( y% ]! ^( d
, F$ C" U1 V; x. t3 }( x2 k& |光标控制命令
$ r# c/ k' \* y. r- u命令 光标移动
, W7 X$ H4 ]) O" T:向上 能够反复输入上一个命令
9 M4 ~$ ?, [9 P' B( J8 V4 A6 \. Ah 向左移一个字符
' C% q p8 ~# k; V @4 i [j 向下移一行
( t; D h S; y1 X4 v- Rnj 向下移动n行& ?- i' D; q2 S+ p; T% ^
k 向上移一行
! u! a' X- r2 I) V$ f; Z$ Cl 向右移一个字符
! a: p; u& `8 Z: G' q" W8 E0 B9 Hgg或:1 移动到文件第一行
. q8 A/ H$ ]2 X$ O* C" x) Z8 K/ MG 移到文件的最后一行7 h2 j* n. T1 D9 r
w 移到下一个字的开头
& ?0 C4 G8 t }( b' S; o8 b1 I6 s) nW 移到下一个字的开头。忽略标点符号( b1 E& @' `2 @
e 移到下一个字的结尾
A: U+ T! Q! gE 移到下一个字的结尾。忽略标点符号2 `* W2 S$ x, t6 {
b 移到当前字或前一个字的开头
& O2 e' l1 {, C2 t8 \B 移到前一个字的开头,忽略标点符号
/ X& u6 B/ K: ~& [# E* pL 移到屏幕的最后一行3 ], P" S) H+ S8 R+ j( g& I
M 移到屏幕的中间一行
5 \1 n+ _. J5 w: Z& kH 移到屏幕的第一行) K4 V% v( Z8 `: j
( 移到句子的开头
8 D4 G8 m9 ~( N" L) 移到句子的结尾7 u; I7 @; u; ~. y
{ 移到段落的开头$ r) u- r7 a; K2 q2 F" r
} 移到下一个段落的开头
$ q, v \4 ^( |; C' {0(数字), | 移到当前行的第一列6 _; g3 U9 @. J9 ~4 [7 o( t2 G& Y
^ 移到当前行的第一个非空字符" u- x4 l( f' T% n
$ 移到当前行的最后一个字符
! ?) U6 w: n- }* \& D) f4 f+, Enter 移到下一行的第一个字符+ ^4 P& v+ m% X2 }+ S0 R
- 移到前一行的第一个非空字符
+ T5 r* p& z5 i/ h6 g, q2 p在 vi 中加入文本
" l. _6 A8 g. X: [. Z! _- A* B( l$ i命令 插入动作
* f, W- o) p& ua 在光标后插入文本7 e$ K# k7 N; G' O0 U0 @' x
A 在当前行尾插入文本
3 e% b6 n1 F% m0 t/ di 在光标前插入文本
# n/ {1 Q A* d* P7 V, C, SI 在当前行前插入文本# P9 n5 R# h8 j f8 C2 B$ s
o 在当前行的下边插入新行% \1 Z4 K" w" j) u" X# a# G, [
O 在当前行的上边插入新行
Y" u L0 H* B2 k5 t. Z$ Os 删除光标所在处字符,并进入插入模式
. V7 X+ {2 k2 x* R$ H/ yS 删除光标所在的行。并进入插入模式, Y$ a# y+ w& w5 f5 ]
:r file 读入文件 file 内容,并插在当前行后9 x! a/ H+ y$ q3 y" I; }
:nr file 读入文件 file 内容,并插在第 n 行后
8 l' `. g; }8 x) x J" AEsc 回到命令模式" F9 {( k" G1 r( V
在 vi 中删除文本
8 P) U! v' x- k6 b2 n/ e* Z# }命令 删除操作
' |3 b5 ]4 r+ |1 Y. z, e. {3 @x 删除光标处的字符,向后删除
8 G. a" I% V& rnx 删除本行光标開始之后的n个字符,不包括其他行
! n- E0 @ B* [" h! X2 IX 删除光标前的单词,向前删除
% S9 R8 ~ j2 K S4 s% [; M4 Sdl 删除一个字符- l8 ?! w0 h% s: ^8 ?. P2 X* h# T
dw 删至下一个字的开头
$ ^, j8 y9 U6 Mdaw 删除当前单词
) P& S4 q1 A7 U) a* E) y- t$ {7 adnw或ndw 删除之后n个单词
% t# a3 K7 U' j( edap 删除一个段落1 q5 h! l$ y, o/ Q) S w- J
dG 删除该光标行及之后直到文件结束8 G- H* m: ^' a6 S
dd 删除整行$ }: W) }: j$ ?
ndd 删除光标下n行3 E8 W- L2 V% a* A8 x6 K( @, B
db 删除光标前面的字) y0 |+ R0 _& u# Q
:n,md 删除n行到m行
( `$ e" H' ?+ D! N+ i* Pd, d$ 从光标处删除到行尾 x. Q2 `4 Q' N% V) A5 Y. Z0 u
d$ 从光标处删除到行尾2 l" a( m/ C- f: `3 o
d,d^ 从光标处删除到行首
1 z; d( S) L" T1 td^ 从光标处删除到行首- D6 N0 U- }! i H: W
改动 vi 文本
3 l: ^4 S* \# K5 Y+ {7 |每一个命令前面的数字表示该命令反复的次数' v* ?' [: k" P, l* c
命令 替换操作/ a2 o6 ]) B- [) d, ], F* ]. V
g~~ 光标所在行字母大写和小写反转
: b6 M( S* f, U7 T4 M R8 cguu 光标所在行字母变小写% s" d, ^/ s8 C
gUU 光标所在行字母变大写+ z9 L }, z2 h; I" ^
gUaw 把当前单词转换成大写$ h P. O; y# j P6 G# Q4 h
gUap 把当前段落转换成大写: l: G% @; @4 b' s3 j
rchar 用 char 替换当前字符 w8 A' S0 c. H2 @: a* X9 }4 J
R text escape 用 text 替换当前字符直到按下 Esc 键: {4 B& B' s d2 U% }
stext escape 用 text 取代当前字符4 r" w( P( C0 |
S 或 cctext escape 用 text 取代整行. K |& P. |5 |0 m# Z" c
cwtext escape 将当前字改为 text
& Q. ^; F! h4 I u) CCtext escape 将当前行余下的改为 text1 O5 \8 H! f0 H. G6 E# a
cG escape 改动至文件的末尾
2 D0 G/ F9 K6 D4 S在 vi 中查找与替换# ^5 Y: | i V# R7 r: `% a% o
命令 查找与替换操作
' T: Y) m+ g2 sf字符 在本行查找下一个字符
/ W1 @5 z6 K+ e; 移动到下一个用f查找的字符,与上面的f配合使用8 C. Z7 a- Z( @8 T
, 当移动到上一个f查找的字符。与;相反: J; Y) r5 J+ R8 t
* 全文查找移动到和光标当前的单词一样的下一个单词
! x& z |7 W; V# M" Q( {/text 在文件里向前查找 text) v/ m) @. c4 x
?text 在文件里向后查找 text/ H0 }5 h) B- N6 l& _
n 在同一方向反复查找
) X% @- J$ o9 `# p/ L* r' {8 j, iN 在相反方向反复查找& ^4 s7 N% N% n4 t
:set ic 查找时忽略大写和小写' d l" j6 t+ e' m) F& B
:set noic 查找时对大写和小写敏感. p! c, w! L9 C! A# T7 S
:ranges/pat1/pat2/g 用 newtext 替换 oldtext
+ j( X6 b) [4 |$ B:m,ns/oldtext/newtext 在 m 行通过 n。用 newtext 替换 oldtext2 k6 E: R( ]3 T9 x) Z
& 反复最后的 :s 命令( F% n9 g* P' H% |2 s8 v
:g/text1/s/text2/text3 查找包括 text1 的行。用 text3 替换 text2* o( [( t; M) x. n& l, a
:g/text/command 在全部包括 text 的行运行 command 所表示的命令' W+ r8 G) g# O
:v/text/command 在全部不包括 text 的行运行 command 所表示的命令# I) A# A( i- z& \' i7 n* M0 K& Y
在 vi 中复制文本 m0 v" i, O# c9 h! u0 Z
命令 复制操作
9 {8 q6 Q' i [9 `/ y$ A5 xyy 将当前行的内容放入暂时缓冲区" {5 A* K0 I9 s
nyy 将 n 行的内容放入暂时缓冲区
# K7 J: ?! S- n, M$ Np 将暂时缓冲区中的文本放入光标后. Q# E- f0 i& K5 w5 r6 u& n
P 将暂时缓冲区中的文本放入光标前* L; W' l: J6 K4 R" ~$ q
np 将暂时缓冲区中的文本放入光标后n次/ g6 @4 h4 E5 n4 C( @3 W
nP 将暂时缓冲区中的文本放入光标前n次, F( e7 Z: t ?' Q! ]$ {8 F5 A
在 vi 中撤消与反复
. L- B2 B, y Z( c# E命令 撤消操作9 H- d, E6 A0 B) n
u 撤消上一步操作1 o8 I, z' {2 ?
U 撤消当前行的全部改动
. `- g3 N% L$ n* @ctrl+r 反复键入,和撤销相反% l; C) I5 Y3 |; Z. S' i5 q
. 反复最后一次改动
5 i0 h: l, y( ?+ v. A0 g4 Z, 以相反的方向反复前面的 f、F、t 或 T 查找命令% _: y6 B5 F/ G1 G( t+ p0 w
; 反复前面的 f、F、t 或 T 查找命令
6 z9 T9 [+ ?4 C- G7 W( ~" {6 \n 反复前面的 / 或 ? 查找命令/ Q5 h1 O8 c0 i! z
N 以相反方向反复前面的 / 或 ? 命令
0 [; F/ P6 K w/ ?保存文本和退出 vi
' q1 N8 b* Q1 H9 f& @, a1 Q! y命令 保存和/或退出操作
0 b, [7 g. x; ~:w 保存文件但不退出 vi
* e; O. \+ I* B:w file 将改动保存在 file 中但不退出 vi
, V n9 a6 \# ^* X! {:wq 或 ZZ 或 :x 保存文件并退出 vi& p) z! n/ x, D
:q! 不保存文件,退出 vi
2 _; |3 b" k) Y* W0 z2 r:e! 放弃全部改动,从上次保存文件開始再编辑
- C; u$ u9 G0 Z# a9 @:set go= go表示gui option的缩写。等于空就是什么都没有- \+ j/ |9 ]3 k
vim file1 file2...filen能够打开多个文件(在shell中输入的)
5 X! N7 _; k5 v# s! R: E$ a9 M8 Avim + filename 进行文件最后一行进行编辑- D8 e9 g I k z7 n; B
vim +n filename 进入文件第n行进行编辑: |7 V6 f% a9 N% I9 e
:e xx.txt 打开某文件+ ]+ T0 _2 |0 A
:open file 打开某文件,同上8 i" V' M# S$ D/ E6 A' V0 w
:tabnew D:\text.txt 新选项卡中打开某文件,输入:tabnew D:\t再按tab,会自己主动补全text.txt。假设不正确再按几次tab,直到正确为止。
C4 T/ I t' i3 B* f9 _:bn 文件切换,下一个文件
T7 b6 m5 S5 y4 a H) I:bp 文件切换。上一个文件2 Y+ \ z6 Z" G w0 O1 _
ctrl+6 文件切换,下一个文件7 \2 j7 u) K7 l$ R$ r$ e
:split 多个文件上下排列,能够通过:q退出当前窗体
0 s% y9 Y5 J: D& B& H:vsplit 多个文件左右排列) O1 X" a2 ~" X& S7 `$ ?. N8 Z
vi 中的选项# Y# f; u- B5 n! V+ |
选项 作用
& o# B. F8 k$ w+ e) G: \:set all 打印全部选项9 K2 W2 `0 s$ L( L
:set nooption 关闭 option 选项
' C( }( v4 n. a, F |4 o:set nu 每行前打印行号
8 I. H% g* `, v# \0 W2 _:set showmode 显示是输入模式还是替换模式" ?! x. |) Y1 o0 p9 \6 T+ N* X
:set autoindent 继承前一行的缩进方式。特别适用于多行凝视3 V' o; l% c/ k# A: k
:set smartindent 为C程序提供自己主动缩进
' t: ]; U) _' }1 W:set list 显示制表符(^I)和行尾符号. V" C# G k S" ~& C6 I, }
:set ts=8 为文本输入设置 tab stops( Q0 x4 T' h$ j/ ]
:set window=n 设置文本窗体显示 n 行7 O0 a3 G( r7 j- [- k
vi 的状态
u: B( [+ o) ~7 K4 N选项 作用( X% F7 u y4 e" w
ctrl+g 显示文件名称、当前的行号、文件的总行数和文件位置的百分比
, X) W+ Y: @' c$ [- M:l 使用字母 "l" 来显示很多的特殊字符,如制表符和换行符
2 r, t5 P( ?" d; c" k- z6 I在文本中定位段落和放置标记
( L u0 e# i) p: j0 j$ p5 k# y选项 作用. }0 Q& A! E7 R+ {4 E( `4 K5 g
{ 在第一列插入 { 来定义一个段落
- T1 c7 D P5 e N: C c[[ 回到段落的开头处
# `9 T: }. P5 N4 l( u( N]] 向前移到下一个段落的开头处& S. `+ Q$ \# t/ \
在 vi 中连接行& D. b2 j- h2 o* N% Z. x
选项 作用8 I& I; L9 m+ A) F) g
J 将下一行连接到当前行的末尾: O% K0 X+ o5 }: z' u% F, {, @
nJ 连接后面 n 行( P/ d$ G. U. J
光标放置与屏幕调整
! v, h& ]: R$ i' ?8 |( u选项 作用# F. @) Y; X4 w0 |; p
H 将光标移动到屏幕的顶行
8 X/ W( `& n$ L( o6 u; ^9 ~! OnH 将光标移动到屏幕顶行下的第 n 行; N4 v# w- `; m+ e. p) q# \- U2 f
M 将光标移动到屏幕的中间0 A2 C2 o/ d6 e- w
L 将光标移动到屏幕的底行
! |- X/ h* ~; n6 P; |nL 将光标移动到屏幕底行上的第 n 行
7 o C+ g8 _) W% u* Yctrl+e 将屏幕下滚一行
- \/ v- \2 J9 l0 @4 N% P/ uctrl+u 将屏幕上滚半页
. }" S" n- u0 B! Q0 \/ e9 Nctrl+d 将屏幕下滚半页4 {( X) W/ C" |8 m
ctrl+b 将屏幕上滚一页
1 y- R' e7 B2 rctrl+f 将屏幕下滚一页; k2 \' Q8 r% q x$ Q3 P! N2 ?
ctrl+o 退出插入模式进入普通模式,操作后又进入插入模式8 P- A; n. a$ h1 M5 X- f: h/ r
ctrl+p 编辑模式下自己主动补全% j* K6 L2 ~ F0 J. L6 C
zz 重绘屏幕,使当前行移动是屏幕正中间* {% U; R. b. {: ^0 w1 H
z-return 将当前行置为屏幕的顶行
" \# X) @: m: @nz-return 将当前行下的第 n 行置为屏幕的顶行; c: y% G+ c/ B3 e+ f
z. 将当前行置为屏幕的中央5 ^! F c8 s4 G7 @6 p% ] i
nz. 将当前行上的第 n 行置为屏幕的中央; h# [1 o( v$ f8 l
z- 将当前行置为屏幕的底行
3 E: Y4 A7 ], Y* W8 M. P& pnz- 将当前行上的第 n 行置为屏幕的底行
7 r4 D- j8 B7 ?: [3 M( W5 t:syntax on 语法高亮
1 M4 v# N! }& m [) S. @:syntax enable 语法高亮( X) ?1 b4 T0 X' p! b% O
:syntax clear 取消高亮
/ e" K& O. T: u. _: V5 {/ ]:color color后加空格然后按table来切换配色方案, h& z7 K: b8 e6 q
:set hls 高亮查找的单词" J, H" s3 m) g8 d
. a8 r& U( W+ G, Y' B. V; } B9 p宏& ~3 O4 G- ?) C0 @
qa(q表示開始录制宏,宏的名字为a)
* B6 _) p b2 `再记录操作
/ ^1 ]: d, X9 \8 c1 W最好按q(表示宏录制结束)5 H5 {# w/ p8 A& v: q: z
使用:@a,宏运行一次。
$ `3 I% S Y: E+ s0 |
6 w* u0 z; b q4 S6@a。表示运行6次宏a。& y% j6 A& t2 _$ }6 K [0 R
0 j, i9 t6 L2 Fvi 中的 shell 转义命令
! e. O+ q% B2 J# K1 ]7 m- }& Z选项 作用/ I2 V, l v3 C K) ~% V
:!command 运行 shell 的 command 命令,如 :!ls: V" [6 H( @: b" N. V- I
:!! 运行前一个 shell 命令
- J' h. O6 Y# B:r!command 读取 command 命令的输入并插入。如 :r!ls 会先运行 ls。然后读入内容9 ?7 Q3 Y, e% W" N
:w!command 将当前已编辑文件作为 command 命令的标准输入并运行 command 命令。如 :w!grep all
) M, L9 `$ F0 l l3 }$ j8 ^:cd directory 将当前工作文件夹更改为 directory 所表示的文件夹! X" u( x5 e! [ P
:sh 将启动一个子 shell。使用 ^d(ctrl+d) 返回 vi2 i8 H! ]( @ n2 \
:so file 在 shell 程序 file 中读入和运行命令! o- S0 E R7 s% B3 I
vi 中的宏与缩写& e, N' D0 P( l$ p/ C$ f
(避免使用控制键和符号。不要使用字符 K、V、g、q、v、*、= 和功能键)
" {$ K3 W; n" K0 D$ w" A选项 作用
) Q6 O( ~1 N: b% }( M" }7 J:map key command_seq 定义一个键来运行 command_seq,如 :map e ea。不管什么时候都能够 e 移到一个字的末尾来追加文本8 ^5 t% o; \ p9 I g8 O6 G5 L
:map 在状态行显示全部已定义的宏5 [* s3 K' S$ [# Z
:umap key 删除该键的宏) v! N+ T2 ?0 p- Z; ]. z! b0 n1 h
:ab string1 string2 定义一个缩写,使得当插入 string1 时,用 string2 替换 string1。当要插入文本时,键入 string1 然后按 Esc 键,系统就插入了 string2# `- I0 H; [' \
:ab 显示全部缩写2 w) y: c P1 X% H: l
:una string 取消 string 的缩写
1 U0 i4 H7 _4 }7 B" K1 H1 w在 vi 中缩进文本
( S7 A( F2 g6 n$ O3 ?选项 作用. ? P4 Z' N- J& E3 _3 [$ V
ctrl+i或 tab 插入文本时。插入移动的宽度。移动宽度是事先定义好的
8 e. q0 g7 H, X. Y& r4 h:set ai 打开自己主动缩进
, S8 J& m+ U" k, N) m6 P:set sw=n 将移动宽度设置为 n 个字符
0 h/ y3 @1 }" a0 Y, G5 z& y0 T>> 使当前行向右移动一个宽度
m( @% z4 Q9 s) sn>> 使 n 行都向右移动一个宽度,比如 3>> 就将接下来的三行每行都向右移动一个移动宽度。假设省略n表示使当前行向右移动一个宽度。! B; t5 \$ ~. t! r% L! x' q% {
# ]! D3 Z, n) W' f6 J9 Z3 P# h, E( |* {( B& ]
>G 使当前行至文档结尾都向右移动一个宽度
, h% d" {& c4 Z4 F: H
1 I5 i: p. u0 I+ L, N/ O5 l可视模式
( C& `4 ?" W4 V3 |6 {8 j# \: w为了便于选取文本。VIM 引入了可视(Visual)模式。" s& C# L3 d. o e2 N& ^; \2 z
/ @* G0 |7 |( N
要选取一段文本,首先将光标移到段首。在普通模式下按 v 进入可视模式。然后把光标移到段末选中内容(移到行首^,行末$)。须要注意。光标所在字符是包括在选区中的。- j, p2 ] ~9 G" u3 m' O
/ U9 _( u7 g) g, a
这时能够对所选的文本进行一些操作,经常使用的(可视模式)命令有:
9 W0 T5 Z' R: ] M: Cx或d 剪切(即删除,同一时候所选的文本进入剪贴板) 5 M) I' v7 C: p
y 复制 ( L9 v4 j* ~( Z/ C2 u4 T
r字符 全部字符替换为新字符 6 c1 s' Y' G! {3 U: W$ D6 N! h
u U ~ 各自是全部字母变小写、变大写、反转大写和小写 ' Q' }8 |) y" B4 A1 k) Y; h
当输入了命令以后。VIM 将回到普通模式,这时能够按 p 或 P 进行粘贴。普通模式下有关复制和粘贴的命令:; y' x& B3 j; }0 t3 M& j* \) D
v 进入可视模式 ( l" m: K( e+ |+ D, q
p或P 在当前位置粘贴剪贴板的内容,p 粘在光标所在字符后面,P 粘在前面 * [( i* M8 j9 Y7 v) |* k9 v8 K
不得不承认,尽管引入了可视模式。复制和粘贴在 VIM 中仍然是比較麻烦的操作,这或许是 VIM 唯一的缺点。此外,VIM 还引入了选择(Select)模式。跟可视模式相似。 |
|