|
|
linux VIM命令:# A% n6 U3 \/ A/ O6 [% A
vim 在命令行中输入vim,进入vim编辑器
r3 C5 L/ v) ]" R$ i MEsc 退出i(插入)命令进行其他命令使用( T8 P( Y# ]' m' v
:sh 进入shell命令行,运行完命令后ctrl+d退出又一次进入vim编辑继续编辑在shell命令下,! f" L" R4 a/ z3 w0 v i; p C# Q% @% W
) c) j# ~: ? b \" k0 h# k
运行ctral+l完毕清屏
3 x n6 k1 M7 \2 {+ t0 f:set number或者:set nu 使编辑中的文件显示行号
- `& l0 P& A2 N& N6 S9 Z:set nonumber或者:set nonu 与上一条命令相反,不显示行号: S6 p- {/ n& K4 H
:help i 查看插入命令帮助4 P1 w& _% }5 U. s# ]
/Fedora 查找Fedora字符
6 C" V# j* I3 i& J:s /Fedora/Redhat 将Fedora字符替换为Redhat(仅仅替换在光标所在的行)
2 t. ^6 Q7 e% f8 t% d8 [:%s/ro../r 将ro..替换成r。.表示随意字符
i, e- p) z5 u* a; J:1,.s/redhat/fedora .号表示当前行,即光标所在行 #将第1行到当前行(.)第一次出现的redhat字符取代为fedora
5 Q7 B& A& Q u* j, n# Z' e:1,.s/redhat/fedora/g 将第1行到当前行(.)全部出现的redhat字符取代为fedora,g
9 W: Q% C" o( g& H# h; u全局标志- G' R& I# A. M+ s9 s D: O5 E
:1,$s/redhat/fedora/g $表示最后一行#将第1行到最后一行全部出现的redhat字符取代为fedora
/ ?2 V V$ Z! H8 T E:%s/redhat/fedora/g 同上一个命令
8 L/ O/ J! J+ V: u" ~% M; i:%s/\/fedora/g 将第1行到最后一行全部出现的redhat字取代为fedora#字,而不是字符
7 j- E' ^2 {& a* d( J7 D:%s/ro/\r&/gc %表示全文,s表示替换。ro替换为换行符。&表示之前要替换的字符ro。g表示一直替换不加g仅仅替换一个,c表示确认是否替换。; H/ e9 B0 j9 k8 C$ q, d7 T
整句话意思是将ro替换成换行符后跟ro9 r: m/ _! X L; v" V
:f #显示文件内容,状态等等#同ctrl+g命令7 l' w& g1 u3 K* I
vi filename 表示编辑filename文件。假设不存在则创建该文件,假设在进入vi时没有指定文件名称能够进入后用":n filename"来指定文件名称。
4 p$ O# Q, o( }0 x; R# p5 B( L$ ~) O- W- l/ |& W
0 _; P0 ^) X n2 M& B# ~
:e! 放弃全部改动,不包括已保存的
! y" w! Y0 {! d9 \ u2 `:e 文件名称 打开指定文件
4 |& w4 T X. w, U1 F* N# WD 删除当前行光标后的全部字符# L) D. y. k4 k+ H% J; J) a
y与y$同样 表示复制本行光标開始到行末的字符2 L# L" Q! Q$ W6 b( R# y
:w! 文件名称 将当前显示文本全部覆盖已存在的文件
( q+ ~9 L' \0 B+ T q:n,mw! 文件名称 将当前显示文本的第n到第m行强制写入指定文件& w( I5 ]9 N+ y3 D" U+ A
w 光标跳到下个单词的首* [) i4 T+ {/ R2 T/ t
e 光标依次跳到单词末尾
) }. r8 h- X) k& q( ?替换文本
, z K, ^- G7 W- j" d; f& lcc 替换当前行' E1 |1 I) V8 \ t* N
C与c$ 替换当前行中从光标处到航模的全部字符* q4 ^: L r& f1 q* G9 ~# Y
cw 假设光标在单词头部或中间,从光标处替换到单词尾部。假设光标在单词尾部。则替换尾字母5 v. x n% U" B% h
ce 假设光标在单词头部或中间。从光标处替换到单词尾部,假设光标在单词尾部,则替换从尾字母到下一个单词尾部
: P" b7 ^7 @4 h, Gcb 假设光标在单词中间则从光标处替换到单词头部,假设光标在单词头部。则替换之前一个单词0 E# k, w3 x; }5 J
) G( @" y/ s, S2 x/ ^/ H缓冲区+ x' Y# p' C6 X, L
缓冲区分为数字缓冲区和字母缓冲区
- C$ ~1 H1 \0 c+ I数字缓冲区:' w: u3 v" V+ L. Y# {2 t* n1 q
每一次dd删除操作都把删除的内容存入一个数字缓冲区,1号缓冲区永远是近期一次的删除内容。每次删除操作会把1号缓冲区的内容存入2号缓冲区。2号存入3号中。依次类推。调用能够用命令"np(n代表1-9中的数字)
) E4 C, o0 d* k# _3 W5 _* `8 o$ w字母缓冲区:
' T M; x" i, ]/ K字母缓冲区有26个,分别为a-z
( }+ ~ o% ]/ i. q6 V! ^命令"add表示删除本行。将本行存入a缓冲区。, _: q( D- T1 U3 S- m
2 D" M# `, G5 C$ w
调用能够用命令"ap
7 S7 j- t. v2 a8 c. [3 i1 f- A4 u6 z( ^8 \3 |) f
光标控制命令( O6 m0 V5 i9 }4 G% q
命令 光标移动
% Y4 s) c- }- Y" R; T8 ]:向上 能够反复输入上一个命令0 O2 D7 S- `) n$ d+ H- ^ u
h 向左移一个字符5 `# d8 q& u D+ k+ U* u
j 向下移一行
8 w1 I! M# ?" M8 w" O znj 向下移动n行 O1 e9 ?1 ]' x) A, F2 F8 x+ f, r$ A
k 向上移一行* {- B# `5 {( [1 p) d( Q
l 向右移一个字符
( H7 u2 A8 V r* I. }( u6 m) I0 Ygg或:1 移动到文件第一行
* i* N2 x8 M t5 w5 l7 QG 移到文件的最后一行
. ?/ u/ N5 S2 z/ W0 x% vw 移到下一个字的开头
8 M2 l' B- F6 O8 H! ~$ L7 i! W, NW 移到下一个字的开头。忽略标点符号( c0 C& U. y4 p% h
e 移到下一个字的结尾1 P) J8 ~/ L: {+ `9 K
E 移到下一个字的结尾。忽略标点符号/ `1 f" A9 }9 }
b 移到当前字或前一个字的开头
9 D# e6 E/ l$ O- H! G6 D! mB 移到前一个字的开头,忽略标点符号
/ B, H- G& h: M/ ^5 f4 d! z1 WL 移到屏幕的最后一行' t4 R: O: s% {7 b6 y. v
M 移到屏幕的中间一行4 a. U% P! N" p
H 移到屏幕的第一行% M- E. ~+ w0 M. [" N" w" q
( 移到句子的开头+ n5 c: z5 o- k, |
) 移到句子的结尾/ P9 [2 a" b6 t; c. C6 H
{ 移到段落的开头# _& X) F0 `% C7 C1 C1 C* @( s
} 移到下一个段落的开头# p9 s$ I* r% C: ]& w- i
0(数字), | 移到当前行的第一列
* e4 C5 s1 ?6 ]7 c" o' e5 o^ 移到当前行的第一个非空字符( }$ W$ P e2 L/ j& Z& ], g
$ 移到当前行的最后一个字符
! N. [! B v8 f2 p$ e$ w+, Enter 移到下一行的第一个字符
- Q" {5 X+ P; l F- 移到前一行的第一个非空字符5 y% n+ ]% q1 L4 a6 e+ t& Y" c
在 vi 中加入文本
( S% @, b. C& m$ Z命令 插入动作
, E0 G( T4 o0 P/ ^. B& A- ^# Ka 在光标后插入文本8 R G$ `+ X; s
A 在当前行尾插入文本
* K" u2 b$ F# D0 O" w0 ci 在光标前插入文本) h1 F9 @% @1 b
I 在当前行前插入文本
1 M. ~( ^! d9 x5 l1 ^) Ao 在当前行的下边插入新行
5 K$ I C# [9 B4 nO 在当前行的上边插入新行6 r( U- D3 P% F- I/ @6 g
s 删除光标所在处字符,并进入插入模式
* ?& `) n1 z& _6 w7 n4 e! M# z& XS 删除光标所在的行。并进入插入模式
0 n1 M: x4 O! E:r file 读入文件 file 内容,并插在当前行后
/ h. \0 i& R2 G Z7 W% b# E& N7 h:nr file 读入文件 file 内容,并插在第 n 行后
& ?" b. T; a6 I. e, YEsc 回到命令模式. g; p9 R3 D( @& ~9 i5 G/ I
在 vi 中删除文本
( b7 G, e" z$ O8 Y3 V, q' O& L命令 删除操作
' P3 W" O0 D7 [6 }x 删除光标处的字符,向后删除. Z: i+ z6 p8 \7 B
nx 删除本行光标開始之后的n个字符,不包括其他行
, k8 Z _# \. M+ ?4 iX 删除光标前的单词,向前删除
" {- a* f2 H8 Y; y3 U& vdl 删除一个字符
$ m) ~8 I0 T$ Z! r! N& c. v% A" {dw 删至下一个字的开头
8 h8 U: ?9 c0 O% V5 R" J( hdaw 删除当前单词# F1 X: s8 b$ _2 Y+ @
dnw或ndw 删除之后n个单词2 b* ]! M4 H& c
dap 删除一个段落
+ Y6 t$ R$ h0 e' mdG 删除该光标行及之后直到文件结束' Y! s: `8 ]& L
dd 删除整行, E! r! N2 L7 @9 k) H8 A7 y6 \2 ?
ndd 删除光标下n行5 N" }% N9 P3 l: j
db 删除光标前面的字5 p1 t; d7 V( y
:n,md 删除n行到m行! _; d& D/ d g/ d' m
d, d$ 从光标处删除到行尾
/ m4 m# B2 g! o& z$ V/ ?( ]d$ 从光标处删除到行尾- R: p/ Y# j7 K/ G
d,d^ 从光标处删除到行首
2 k8 Y. {/ W7 T7 B& X, V8 _d^ 从光标处删除到行首
, Y$ C" q% [+ @: h( y改动 vi 文本1 C" T# D' Y8 |9 Q. X7 N2 l2 ]
每一个命令前面的数字表示该命令反复的次数" ~& w6 e4 y" u! J: h* Q# I0 r
命令 替换操作
" X b, E% C; X! [* E$ lg~~ 光标所在行字母大写和小写反转% U$ Z: h. d( z: j: t! o
guu 光标所在行字母变小写5 c1 [/ U2 B1 E6 f! g
gUU 光标所在行字母变大写1 Z# r1 M j( J6 ?
gUaw 把当前单词转换成大写+ V: q& P5 I$ \( ~8 r
gUap 把当前段落转换成大写
5 j7 K& F) `" _" O8 crchar 用 char 替换当前字符
% r/ r" @3 r% s" _- }4 B& }: sR text escape 用 text 替换当前字符直到按下 Esc 键
$ m$ w7 V; j1 F0 q% ostext escape 用 text 取代当前字符) X. M7 E; C1 P/ p2 m t
S 或 cctext escape 用 text 取代整行
1 t N) [: W, B$ @& qcwtext escape 将当前字改为 text+ }% @0 z' @0 ^
Ctext escape 将当前行余下的改为 text+ ]: S0 J; G* P& t4 C
cG escape 改动至文件的末尾
# K( P; O5 E( X在 vi 中查找与替换 ?. r) Q) N* [$ t: H
命令 查找与替换操作
) E+ M Z: \% E8 F# nf字符 在本行查找下一个字符
7 {$ r* e; H9 E9 j3 p5 O# Z' N$ A; 移动到下一个用f查找的字符,与上面的f配合使用/ G7 D, }8 p: j* F
, 当移动到上一个f查找的字符。与;相反
3 [ j( L# j- E. u& G* C* 全文查找移动到和光标当前的单词一样的下一个单词
; D6 K+ u7 z- F: Y, T- a/text 在文件里向前查找 text. w1 T8 r$ g K0 {9 A: \
?text 在文件里向后查找 text
5 p* \ C' H& ], x' Gn 在同一方向反复查找% D* B+ w4 u5 a# ^7 Z6 C3 t
N 在相反方向反复查找" a8 z w# n& {9 a$ B1 A/ O0 e
:set ic 查找时忽略大写和小写8 H4 p8 Y. U% _. i$ z
:set noic 查找时对大写和小写敏感, [: {- O5 @. h( k6 Q0 o3 X
:ranges/pat1/pat2/g 用 newtext 替换 oldtext& j5 ]: V% f. d* f( l$ i* K
:m,ns/oldtext/newtext 在 m 行通过 n。用 newtext 替换 oldtext
) W0 Q, k. D5 I2 J& 反复最后的 :s 命令5 [9 |) N: U0 _. }: a# j. \ f
:g/text1/s/text2/text3 查找包括 text1 的行。用 text3 替换 text2* i5 [9 i: r+ ^) b
:g/text/command 在全部包括 text 的行运行 command 所表示的命令
. U2 P8 g: |6 z8 w:v/text/command 在全部不包括 text 的行运行 command 所表示的命令% `& s1 @9 J6 y- C: z- B" J
在 vi 中复制文本% x0 W5 }! v; l/ V% v4 E" ^8 h
命令 复制操作 {9 C& v1 j; K0 u7 T: n2 ^! w' K4 U7 \
yy 将当前行的内容放入暂时缓冲区
; f/ {+ a* x( @9 @7 t7 w& h( fnyy 将 n 行的内容放入暂时缓冲区
4 f! Z' t4 F) R" p% Ap 将暂时缓冲区中的文本放入光标后, Y; \1 x) }, k4 R
P 将暂时缓冲区中的文本放入光标前
. {- u( k `" M6 Cnp 将暂时缓冲区中的文本放入光标后n次: L7 n+ G2 B5 [' Q, e6 }
nP 将暂时缓冲区中的文本放入光标前n次
6 w6 }1 w" j. g. P$ Z- W- W在 vi 中撤消与反复
, S/ K" P$ b9 s5 D命令 撤消操作. _3 e) E- f) `3 I% R% N
u 撤消上一步操作. U+ b3 G' i" V6 B& n/ Y7 s) }7 K
U 撤消当前行的全部改动8 d& Q6 _. g$ Q1 x1 u$ r
ctrl+r 反复键入,和撤销相反
2 i, R5 k2 v$ w2 n/ l- W9 b3 ~2 a. 反复最后一次改动2 Z, F+ j9 F' `, N' k5 I& Q
, 以相反的方向反复前面的 f、F、t 或 T 查找命令5 P) q* f/ V! ?3 r
; 反复前面的 f、F、t 或 T 查找命令$ K/ }) H/ A3 g0 B0 D
n 反复前面的 / 或 ? 查找命令0 t, G" ~( B& s" t8 D0 K
N 以相反方向反复前面的 / 或 ? 命令1 Y7 Z2 j$ b0 O& A
保存文本和退出 vi+ ?* M" i7 k" V
命令 保存和/或退出操作5 ~4 e" P# M0 H7 `
:w 保存文件但不退出 vi2 P2 R; n; O, P" V$ Y! v7 x
:w file 将改动保存在 file 中但不退出 vi
' T0 ]: ~) w' S8 p' [' D:wq 或 ZZ 或 :x 保存文件并退出 vi$ f0 b5 F. f& O+ ~0 G) v5 q
:q! 不保存文件,退出 vi
J6 W8 \' b; z7 U9 S:e! 放弃全部改动,从上次保存文件開始再编辑" F- n" t" ?3 j/ D
:set go= go表示gui option的缩写。等于空就是什么都没有! B5 G; V, B# ?# G* o2 W
vim file1 file2...filen能够打开多个文件(在shell中输入的)
/ w2 g4 K y, p5 Gvim + filename 进行文件最后一行进行编辑
8 u5 ^# ?' z2 O7 w7 Vvim +n filename 进入文件第n行进行编辑1 W& T0 _6 `% `* u2 ^8 U
:e xx.txt 打开某文件
8 N* F0 U: M+ ~7 t1 L:open file 打开某文件,同上
# q, c0 K. L1 Y# ^:tabnew D:\text.txt 新选项卡中打开某文件,输入:tabnew D:\t再按tab,会自己主动补全text.txt。假设不正确再按几次tab,直到正确为止。: |0 k- X, c/ `! O1 y& \1 V$ G8 A
:bn 文件切换,下一个文件
: ^* |. E6 _! y; R N, R:bp 文件切换。上一个文件
; z; v# m! c% U) [! Uctrl+6 文件切换,下一个文件
' i$ W: b$ Q& D* J0 b:split 多个文件上下排列,能够通过:q退出当前窗体; j" k0 b. J" n' ]1 a1 C
:vsplit 多个文件左右排列$ R# Q& T/ |+ q e6 W
vi 中的选项
. t) Y3 M' a1 V/ A选项 作用
6 D0 e: R* ]9 M! `:set all 打印全部选项
8 G6 I, k1 }8 l* ]1 R9 ~8 _:set nooption 关闭 option 选项; f7 Q+ i _1 z; `7 \1 M# ]& `' b1 V
:set nu 每行前打印行号- {* R8 J6 |0 x8 E2 X" C# ?
:set showmode 显示是输入模式还是替换模式
! j3 ?$ X# O9 v) p1 n! r8 f1 S/ h:set autoindent 继承前一行的缩进方式。特别适用于多行凝视
6 L& ^/ R+ f4 V" x5 t+ I:set smartindent 为C程序提供自己主动缩进
. f8 ]: m8 D# q:set list 显示制表符(^I)和行尾符号: U' T: Y0 x9 C( q! V+ W7 {: a
:set ts=8 为文本输入设置 tab stops( I( G* O! T6 s S6 O h- u* A; J
:set window=n 设置文本窗体显示 n 行) S, K1 o. { t
vi 的状态
* u- q( Y. z2 f8 A- p6 E+ I1 j选项 作用
7 }5 O( b R$ Y4 Ectrl+g 显示文件名称、当前的行号、文件的总行数和文件位置的百分比3 m" n0 A7 I* r' f+ Z9 @
:l 使用字母 "l" 来显示很多的特殊字符,如制表符和换行符( i" B9 U" k0 b: O$ T
在文本中定位段落和放置标记: e8 s; N7 X0 Q( k! w. f
选项 作用
/ T3 ~# _' M+ j* W; S8 H{ 在第一列插入 { 来定义一个段落. Y( i; `$ X) v: }3 q
[[ 回到段落的开头处
5 A) g- R: B4 W- q]] 向前移到下一个段落的开头处% [$ H+ Y C' l6 F9 L7 \6 h2 P# r
在 vi 中连接行 \6 @' o0 s( A( y8 {7 K
选项 作用
/ r# H. R$ h+ f! A+ I9 W, AJ 将下一行连接到当前行的末尾0 F h" j2 {1 x. r" d6 @# ]
nJ 连接后面 n 行 y6 X/ G1 N: w- R
光标放置与屏幕调整& C# Y* s% X' ^) E- X
选项 作用# ~/ ]6 [ C. W5 Z+ k
H 将光标移动到屏幕的顶行7 n3 d" h, [4 T: P" G6 P0 G
nH 将光标移动到屏幕顶行下的第 n 行/ v" D+ W8 |; P4 e0 X0 H
M 将光标移动到屏幕的中间
' |6 j1 A; w$ `9 o4 ZL 将光标移动到屏幕的底行1 F: ^* R! c, u% g$ b
nL 将光标移动到屏幕底行上的第 n 行 k7 _2 k1 E5 ~- t, p& _, M3 g
ctrl+e 将屏幕下滚一行) t B# v7 {- n' A9 W& b1 r% l5 |
ctrl+u 将屏幕上滚半页
/ _3 Q+ \7 w: y1 Fctrl+d 将屏幕下滚半页
! P8 i- {, h* Zctrl+b 将屏幕上滚一页4 Q' N9 F1 N& F0 B- Z7 d
ctrl+f 将屏幕下滚一页
* `* `" _5 s; ?ctrl+o 退出插入模式进入普通模式,操作后又进入插入模式- z* g& {& v, M4 ]! U
ctrl+p 编辑模式下自己主动补全
3 K4 \/ w7 ]) W0 R4 vzz 重绘屏幕,使当前行移动是屏幕正中间
2 c+ r9 C- A( c0 sz-return 将当前行置为屏幕的顶行
' o3 H* p3 J; E) c' g+ m) B$ D6 M4 }nz-return 将当前行下的第 n 行置为屏幕的顶行8 `8 u {6 L% e. e+ R
z. 将当前行置为屏幕的中央
# S0 H5 m1 q1 u5 h7 p( [nz. 将当前行上的第 n 行置为屏幕的中央1 B; A4 c" B. o; ?% P: \& M: S a2 d
z- 将当前行置为屏幕的底行) i7 L# k: ?2 z7 Y; |1 o. y, S# R, H
nz- 将当前行上的第 n 行置为屏幕的底行
9 L5 A' n* {6 {- e:syntax on 语法高亮
3 L# S" b0 | k4 I:syntax enable 语法高亮
' Y* S$ |4 p- o' _2 Q8 }& o:syntax clear 取消高亮
! T% ^1 b; M+ D, Z% z:color color后加空格然后按table来切换配色方案
F# _ l" S2 x. Q Q: @7 L:set hls 高亮查找的单词
' ~; N9 @8 L" ]3 y+ {" a( r1 ]2 Q, c
宏+ l0 Q# u5 G1 n0 w1 ~2 I3 l
qa(q表示開始录制宏,宏的名字为a)( f8 m$ K( X) O2 ` w! v
再记录操作
8 C8 v( A) u1 s) w9 m4 F0 ~ z9 H最好按q(表示宏录制结束)
& W6 n+ P/ x$ O4 O& G8 Y, v$ p使用:@a,宏运行一次。
9 `& ]+ R' b% x) J+ S V# k2 r1 Q' E! @( Y7 m
6@a。表示运行6次宏a。
! p' C" L1 d; [0 ^8 Z U9 k5 O! S! d+ q! e
vi 中的 shell 转义命令# D! B) i8 B6 W, \4 z% `: U, o8 D# H/ a
选项 作用0 _+ b( F0 D' O' Y/ r5 {+ D! m- `
:!command 运行 shell 的 command 命令,如 :!ls$ F6 g* S5 Q" R
:!! 运行前一个 shell 命令
% W4 c* K( }% G! r' Y( H- ]4 h:r!command 读取 command 命令的输入并插入。如 :r!ls 会先运行 ls。然后读入内容0 b4 t0 H! y$ \5 [
:w!command 将当前已编辑文件作为 command 命令的标准输入并运行 command 命令。如 :w!grep all4 X* @1 B& Y3 P' z, {
:cd directory 将当前工作文件夹更改为 directory 所表示的文件夹
' ]/ C8 Q8 G B1 O& S:sh 将启动一个子 shell。使用 ^d(ctrl+d) 返回 vi+ A! M3 m( R8 G* ?9 K. t/ H( P
:so file 在 shell 程序 file 中读入和运行命令! Y& v! H A$ m1 S @) J5 q6 c
vi 中的宏与缩写
; K8 U8 D ~7 x+ f: d' ?(避免使用控制键和符号。不要使用字符 K、V、g、q、v、*、= 和功能键)- r; g7 d1 ~ ]3 c* I# Q* @7 b
选项 作用
; R( H& \" z5 f/ r9 S! n/ _7 B:map key command_seq 定义一个键来运行 command_seq,如 :map e ea。不管什么时候都能够 e 移到一个字的末尾来追加文本6 G0 m l5 o6 I+ F* r3 V6 m
:map 在状态行显示全部已定义的宏3 t$ L$ n C4 P' \0 ]9 n' _
:umap key 删除该键的宏/ t' r0 t7 ^) a3 g' L# X
:ab string1 string2 定义一个缩写,使得当插入 string1 时,用 string2 替换 string1。当要插入文本时,键入 string1 然后按 Esc 键,系统就插入了 string2" H% w# N# x7 u9 s3 K
:ab 显示全部缩写
( g8 p3 X0 J* }5 O# z( u/ \:una string 取消 string 的缩写6 C3 ]$ g2 r( G8 |4 n Y
在 vi 中缩进文本
! H- B8 F4 b% _1 A* ~( v& y, r$ P选项 作用
/ W6 [0 m j2 Uctrl+i或 tab 插入文本时。插入移动的宽度。移动宽度是事先定义好的
; |) G( y3 H0 `" d) E: G" x:set ai 打开自己主动缩进
; Y( W+ s0 d+ l: @:set sw=n 将移动宽度设置为 n 个字符
9 N2 s" `; h& l! f>> 使当前行向右移动一个宽度9 w8 h& G- C# B0 P
n>> 使 n 行都向右移动一个宽度,比如 3>> 就将接下来的三行每行都向右移动一个移动宽度。假设省略n表示使当前行向右移动一个宽度。7 D) M* w* u/ _! ^
/ }3 Q' C6 ~6 b1 ^* ~" X
5 p3 ~+ Z" d* u( X9 [+ ^0 [>G 使当前行至文档结尾都向右移动一个宽度6 a* ~5 w9 o# \4 k
1 r; o$ o" m2 r- q# N
可视模式
0 V! D9 T' f; M: S+ r) J为了便于选取文本。VIM 引入了可视(Visual)模式。
( W) k p" k# c/ Q7 N: M
' {, ^! P' ~; p5 T" G要选取一段文本,首先将光标移到段首。在普通模式下按 v 进入可视模式。然后把光标移到段末选中内容(移到行首^,行末$)。须要注意。光标所在字符是包括在选区中的。% {' U' Q% {) F- w- y4 V
0 n, `+ q2 d4 l5 Q. N
这时能够对所选的文本进行一些操作,经常使用的(可视模式)命令有:
5 k% i, G j) d, J/ j% q6 |x或d 剪切(即删除,同一时候所选的文本进入剪贴板) $ L1 w7 r8 D' e$ {' a4 b& d' O( T
y 复制 : j# p* p; S4 V+ J, w/ Z! o
r字符 全部字符替换为新字符
2 ]2 ]& m& a8 O C0 j' zu U ~ 各自是全部字母变小写、变大写、反转大写和小写
5 m5 b) }7 O; w' ~当输入了命令以后。VIM 将回到普通模式,这时能够按 p 或 P 进行粘贴。普通模式下有关复制和粘贴的命令:
( [0 J! T+ k5 `v 进入可视模式
5 u- d$ Z5 c% G5 H* E; X+ ~+ qp或P 在当前位置粘贴剪贴板的内容,p 粘在光标所在字符后面,P 粘在前面
8 |' U& g& U8 S( N- n# f不得不承认,尽管引入了可视模式。复制和粘贴在 VIM 中仍然是比較麻烦的操作,这或许是 VIM 唯一的缺点。此外,VIM 还引入了选择(Select)模式。跟可视模式相似。 |
|