|
|
linux VIM命令:
7 K) G4 S: h6 M) Kvim 在命令行中输入vim,进入vim编辑器; I# v1 f2 r9 L* c. i8 S
Esc 退出i(插入)命令进行其他命令使用/ {' `$ B7 D$ s5 a
:sh 进入shell命令行,运行完命令后ctrl+d退出又一次进入vim编辑继续编辑在shell命令下,8 N' u" @/ P# c; o# S
1 V, I, R7 P* ^% p* `3 Q9 t
运行ctral+l完毕清屏- V) S2 L; E/ c8 P+ }+ ]8 `5 i& V0 e
:set number或者:set nu 使编辑中的文件显示行号
# ~# L' O- R- x2 q- I( i( K5 V:set nonumber或者:set nonu 与上一条命令相反,不显示行号
( N% y5 P! A8 V: \& s4 f! g n:help i 查看插入命令帮助
% Y E# R E6 o8 L8 i/ q/Fedora 查找Fedora字符
+ _& }* ~5 w) F7 o# ]/ ~- `:s /Fedora/Redhat 将Fedora字符替换为Redhat(仅仅替换在光标所在的行)
( c4 M/ T6 @+ G) R3 `:%s/ro../r 将ro..替换成r。.表示随意字符
. B$ ~# M8 L: D8 `6 `5 r:1,.s/redhat/fedora .号表示当前行,即光标所在行 #将第1行到当前行(.)第一次出现的redhat字符取代为fedora% Z2 |, G1 K4 h9 b" d, L7 \
:1,.s/redhat/fedora/g 将第1行到当前行(.)全部出现的redhat字符取代为fedora,g
! H) f/ |% H; @8 N5 U7 P# n4 {& j) Y全局标志' F0 G$ P6 U* X% a7 v- h) ?
:1,$s/redhat/fedora/g $表示最后一行#将第1行到最后一行全部出现的redhat字符取代为fedora
+ ~' n0 k2 R) O:%s/redhat/fedora/g 同上一个命令
! ^9 f( J* t7 y, Y, l. Q4 j, e; c" c:%s/\/fedora/g 将第1行到最后一行全部出现的redhat字取代为fedora#字,而不是字符
' f9 w3 d5 I6 c [7 L:%s/ro/\r&/gc %表示全文,s表示替换。ro替换为换行符。&表示之前要替换的字符ro。g表示一直替换不加g仅仅替换一个,c表示确认是否替换。
% q1 E4 ~# Z; \8 H6 w整句话意思是将ro替换成换行符后跟ro
5 u4 ?( Y* r% x5 }* N:f #显示文件内容,状态等等#同ctrl+g命令4 E9 b5 a7 m2 w- z8 K4 N1 O7 P
vi filename 表示编辑filename文件。假设不存在则创建该文件,假设在进入vi时没有指定文件名称能够进入后用":n filename"来指定文件名称。
5 L9 l" Z. [! k. ?4 ]
% z5 V9 Y: P0 l3 I+ u, H; y. y! O: `4 e+ y
:e! 放弃全部改动,不包括已保存的
' b4 v' n% `8 K0 J:e 文件名称 打开指定文件. _- _# y/ I8 n& q9 x* a' ^( x
D 删除当前行光标后的全部字符$ E0 k. q! K0 P1 V+ h/ j# E
y与y$同样 表示复制本行光标開始到行末的字符( q% C3 I7 T3 b) H9 k
:w! 文件名称 将当前显示文本全部覆盖已存在的文件
1 `" I/ {! Y$ G7 }; D, u:n,mw! 文件名称 将当前显示文本的第n到第m行强制写入指定文件
, A7 R( f9 S: I7 p; sw 光标跳到下个单词的首
! C. ]+ Y, Y# @: G$ `0 e8 w! |5 Ce 光标依次跳到单词末尾 9 B& n* ~# z6 I# O O
替换文本$ n4 G2 P) K. a( {
cc 替换当前行# s2 k6 q! S% n4 ~: U( u
C与c$ 替换当前行中从光标处到航模的全部字符
! @' I- W( T8 l Ucw 假设光标在单词头部或中间,从光标处替换到单词尾部。假设光标在单词尾部。则替换尾字母
9 g( g7 N* i+ vce 假设光标在单词头部或中间。从光标处替换到单词尾部,假设光标在单词尾部,则替换从尾字母到下一个单词尾部' B# @5 A$ ~ _, x
cb 假设光标在单词中间则从光标处替换到单词头部,假设光标在单词头部。则替换之前一个单词% j* h6 C( e8 ?# h
$ S/ f f) \- X* G- M" E缓冲区
' \+ j+ z0 d8 ^! Y5 A缓冲区分为数字缓冲区和字母缓冲区4 K' _- P! w+ g+ c# m8 n
数字缓冲区:
& y8 T5 [- }) e/ _$ y, R每一次dd删除操作都把删除的内容存入一个数字缓冲区,1号缓冲区永远是近期一次的删除内容。每次删除操作会把1号缓冲区的内容存入2号缓冲区。2号存入3号中。依次类推。调用能够用命令"np(n代表1-9中的数字)
- i1 I, } S# `4 k字母缓冲区:
- D. K' v1 }. I8 K字母缓冲区有26个,分别为a-z0 K! A+ y6 E0 j5 `/ y, ~! p
命令"add表示删除本行。将本行存入a缓冲区。
$ r! ~2 }5 y/ j9 W% o8 ]4 a' v- q' t; i) m. P
调用能够用命令"ap+ J! }# m8 M4 q! [9 h/ W
" O& B$ ]! u9 N4 V/ H
光标控制命令
1 n/ }" u7 B% p8 w命令 光标移动
: R. v, F2 ^8 S( s0 t:向上 能够反复输入上一个命令
. Y E& w0 D6 I' u! Fh 向左移一个字符4 l+ Y- q" Z) B& ^
j 向下移一行8 ~0 j; H- }1 R
nj 向下移动n行' z' A0 n! B5 [7 J$ M2 Q2 M
k 向上移一行* S6 j4 `! k. P: Q: W
l 向右移一个字符% p+ I& ^! J! C, r
gg或:1 移动到文件第一行6 m* [1 t0 o% ]. [5 Y, m% K
G 移到文件的最后一行" [1 B! m, P9 t5 P6 `+ k2 G( ~0 K
w 移到下一个字的开头
: U% C- a: k/ \4 X2 o) QW 移到下一个字的开头。忽略标点符号, O4 |$ D2 ~0 K1 [
e 移到下一个字的结尾6 u3 i5 ]( J& o5 ^; k
E 移到下一个字的结尾。忽略标点符号2 [3 z. E* h* \. j+ w* p
b 移到当前字或前一个字的开头
2 s! a$ x' l4 O3 p- c' eB 移到前一个字的开头,忽略标点符号1 w- U/ Y+ y \9 g/ u
L 移到屏幕的最后一行+ D: r$ Z8 W# M2 F
M 移到屏幕的中间一行
2 i9 l) r! Y6 O9 h; U2 kH 移到屏幕的第一行
9 G8 v6 h4 b# |: g8 K( 移到句子的开头
, [/ T9 d& p5 e$ Z: d) 移到句子的结尾
) k0 S J3 h* C0 L{ 移到段落的开头
( K5 {! j" }! V$ N- T y} 移到下一个段落的开头2 V' J. `- E3 V1 ]5 w$ J
0(数字), | 移到当前行的第一列. ~" Z$ f9 w0 _6 I* |; h
^ 移到当前行的第一个非空字符
( P v0 Y) D; V- x1 w$ w$ 移到当前行的最后一个字符
: E( R; `! ]5 a3 ]# P+, Enter 移到下一行的第一个字符6 w! E1 B# z! j, G
- 移到前一行的第一个非空字符! B+ h7 }3 B9 i3 e' A/ A Q
在 vi 中加入文本4 O0 Z/ z- A5 h
命令 插入动作6 J* E5 R% `' f1 K: l
a 在光标后插入文本
/ b& I( s6 ^" l3 ]8 n" O* G& g6 G/ LA 在当前行尾插入文本
9 O) R% V5 P' V! _! D* H9 Xi 在光标前插入文本
8 [4 k |% o: O1 g9 |$ [I 在当前行前插入文本
" e5 ~" t1 Z0 v/ a" V$ wo 在当前行的下边插入新行% k: E( c# N2 f }
O 在当前行的上边插入新行; l9 J% N8 ~4 J
s 删除光标所在处字符,并进入插入模式
# J( j$ _' P; aS 删除光标所在的行。并进入插入模式
1 x3 Y# w' n8 x1 I, M" N:r file 读入文件 file 内容,并插在当前行后
- M9 T4 A- P0 |6 _% o O& a:nr file 读入文件 file 内容,并插在第 n 行后' K7 ?: x* S6 ]7 Y3 C
Esc 回到命令模式
6 o$ H* @4 E7 [在 vi 中删除文本6 [# `* W8 u* t. l) P" @7 w" @" |( {, [; ~
命令 删除操作
. Y$ A. V( F$ V0 B8 @3 c( F! B# tx 删除光标处的字符,向后删除
: E+ ]0 g, A! ?" b# a( Xnx 删除本行光标開始之后的n个字符,不包括其他行4 S5 p, [/ r) k+ |) l
X 删除光标前的单词,向前删除
, m1 e$ l a$ i$ idl 删除一个字符& |- G" a$ ?6 q2 w$ a+ H
dw 删至下一个字的开头
+ p& c2 p( X1 H, J1 s$ ddaw 删除当前单词
' n+ S6 f& D1 y2 E( pdnw或ndw 删除之后n个单词# ]& ~3 ]& ]- Z8 Q
dap 删除一个段落
! g' B% c! D. ?1 x- g* h, idG 删除该光标行及之后直到文件结束) S) ~3 k' w0 q4 x- ?: B
dd 删除整行
3 o7 B0 x) Z" w' {ndd 删除光标下n行* y) w/ `/ u. Z% l8 @3 @! q, a. w
db 删除光标前面的字
( Y' K- R1 I9 L! Q( V! w$ Y" u; B:n,md 删除n行到m行
& {* x D+ M' d& k8 sd, d$ 从光标处删除到行尾' B9 r B* D4 l0 {' S" Z% r
d$ 从光标处删除到行尾: _5 E! @* D. }: m6 N
d,d^ 从光标处删除到行首
: ^) y% J C) b$ V6 ~d^ 从光标处删除到行首
" J m4 @2 g ?改动 vi 文本" L( P0 d7 T2 p2 E' g# E
每一个命令前面的数字表示该命令反复的次数
- g! g) N E9 _. ^7 V/ x命令 替换操作* P9 U5 z6 M* P0 _; W
g~~ 光标所在行字母大写和小写反转" q) D9 k5 L' L& w. U4 u' b5 n
guu 光标所在行字母变小写
0 T7 q2 _$ i) \7 n. s' FgUU 光标所在行字母变大写* f3 k) M! D5 |' b
gUaw 把当前单词转换成大写
: q& {7 \1 |+ e g( ~8 ^- |0 ygUap 把当前段落转换成大写
% M: q9 C6 }5 j( R! w* K7 B( V+ brchar 用 char 替换当前字符& F9 K5 G2 @% _0 {
R text escape 用 text 替换当前字符直到按下 Esc 键
1 g$ N, ~) A* |6 h" istext escape 用 text 取代当前字符- E2 r! D7 q- q' N3 g7 r
S 或 cctext escape 用 text 取代整行) ]. i' c/ ` X c) O
cwtext escape 将当前字改为 text/ @/ r, F/ k4 B: V/ ?% `7 \2 f
Ctext escape 将当前行余下的改为 text
& d: M- j8 N4 k- a' @+ B( {* LcG escape 改动至文件的末尾
7 z/ Z7 o a- G# K在 vi 中查找与替换2 G5 E5 I+ e! N: Z" @. {; g8 G
命令 查找与替换操作
# I& x6 A9 C0 B' ~$ lf字符 在本行查找下一个字符. i1 W1 B: h' d$ V0 k( c: e
; 移动到下一个用f查找的字符,与上面的f配合使用6 h2 y- n, W* ^3 `) H' k$ e/ ~
, 当移动到上一个f查找的字符。与;相反
9 ^4 B4 I: h4 ~! ]* 全文查找移动到和光标当前的单词一样的下一个单词# X$ A1 t9 I& k; S4 N3 `
/text 在文件里向前查找 text
7 S- N( D2 `" k5 g. y' p?text 在文件里向后查找 text. [6 r, T$ a# {1 S; G* l
n 在同一方向反复查找; Y7 g+ G- t3 P4 v; o: M
N 在相反方向反复查找
9 ]% b# P) _+ D$ [8 W4 T- T:set ic 查找时忽略大写和小写5 e* ^# w! J) B! B
:set noic 查找时对大写和小写敏感- q \- k6 \6 e3 f
:ranges/pat1/pat2/g 用 newtext 替换 oldtext t" I2 g4 _6 [. B" ]
:m,ns/oldtext/newtext 在 m 行通过 n。用 newtext 替换 oldtext9 g* L7 e& }. v" |& y" d2 r
& 反复最后的 :s 命令
$ X+ X) `5 _ J:g/text1/s/text2/text3 查找包括 text1 的行。用 text3 替换 text2) a0 M! T% U/ h z( A7 \" j( H7 Q
:g/text/command 在全部包括 text 的行运行 command 所表示的命令' V" c; }7 k# V
:v/text/command 在全部不包括 text 的行运行 command 所表示的命令" p* n: X# \8 r, J& b+ b
在 vi 中复制文本) T ^; S' p& {5 M/ j
命令 复制操作
9 A6 _+ A7 M: zyy 将当前行的内容放入暂时缓冲区
! k! P! C+ [4 D& unyy 将 n 行的内容放入暂时缓冲区
& ^! Q$ t# _ F+ ^ xp 将暂时缓冲区中的文本放入光标后9 x; R' [( N, |8 c2 v' z
P 将暂时缓冲区中的文本放入光标前
1 k, r& N& C/ l- i& d6 T( z( p0 Rnp 将暂时缓冲区中的文本放入光标后n次
* Y: n% L H' FnP 将暂时缓冲区中的文本放入光标前n次8 W) n2 b% ^6 K- R1 v
在 vi 中撤消与反复
4 F: A) V3 k; c( b! c S命令 撤消操作
; ^0 T1 v4 O- Y& bu 撤消上一步操作
6 R5 {+ e! _- S) UU 撤消当前行的全部改动
2 G8 h( T/ K; |! ? \+ qctrl+r 反复键入,和撤销相反
- l5 g4 V$ n2 ]7 z5 w. 反复最后一次改动
8 y, g/ [8 j# b" K# z5 _, 以相反的方向反复前面的 f、F、t 或 T 查找命令
" N4 }4 j- |9 w; 反复前面的 f、F、t 或 T 查找命令1 s" ]! V& o" J' W# z) W5 A
n 反复前面的 / 或 ? 查找命令$ `% w% }8 C s; V+ i
N 以相反方向反复前面的 / 或 ? 命令
3 ?0 Y' L( X6 c0 \保存文本和退出 vi
5 V2 R4 C! d4 D命令 保存和/或退出操作
7 w6 G% q4 a& w$ k% d4 D:w 保存文件但不退出 vi
! i* `& y& t7 j2 s7 I5 ], ?:w file 将改动保存在 file 中但不退出 vi2 [7 c5 e1 }1 Y: o+ D. ~- O1 |
:wq 或 ZZ 或 :x 保存文件并退出 vi
% @3 ^) ]7 K5 E5 o5 q:q! 不保存文件,退出 vi( N( c4 r) t3 [/ E
:e! 放弃全部改动,从上次保存文件開始再编辑
; I) U+ T) u9 g$ a8 c3 A:set go= go表示gui option的缩写。等于空就是什么都没有
# Z% T" }, m( ` h3 |vim file1 file2...filen能够打开多个文件(在shell中输入的), J2 e0 w0 U8 N( E
vim + filename 进行文件最后一行进行编辑6 P9 M2 r' w# g+ l! A3 V6 v* F h
vim +n filename 进入文件第n行进行编辑 ]! T, z; o$ e. d5 p5 d
:e xx.txt 打开某文件
8 i4 j( C$ v8 L4 F) @; y/ \1 N:open file 打开某文件,同上* } `9 V1 s$ T7 n
:tabnew D:\text.txt 新选项卡中打开某文件,输入:tabnew D:\t再按tab,会自己主动补全text.txt。假设不正确再按几次tab,直到正确为止。( y4 S( M2 y6 a6 A) d
:bn 文件切换,下一个文件1 g3 n+ {# ]) g1 M1 m
:bp 文件切换。上一个文件$ ^* B4 W& c6 b% Y2 S. p
ctrl+6 文件切换,下一个文件; Z" I% T& L% D: c" [9 o) ?: `; f
:split 多个文件上下排列,能够通过:q退出当前窗体
2 f D! j. h2 M8 V:vsplit 多个文件左右排列7 u; x3 q1 Z2 q7 `' e
vi 中的选项
1 i3 k. [9 |8 ~% H选项 作用
" P" f6 z' ?9 ~:set all 打印全部选项
1 G0 d8 _8 z7 s# Q3 i:set nooption 关闭 option 选项6 D- J( g$ Z, @3 U
:set nu 每行前打印行号
+ X4 _- t& U. u1 f, @6 o:set showmode 显示是输入模式还是替换模式
( Z0 ?$ R- @ ?:set autoindent 继承前一行的缩进方式。特别适用于多行凝视
* F: ?" w; c f+ _:set smartindent 为C程序提供自己主动缩进" _1 U T. [! `: l6 c" }1 A
:set list 显示制表符(^I)和行尾符号
4 _9 M" J% W4 u" S% f:set ts=8 为文本输入设置 tab stops) y6 F5 O4 c6 N; m; ~" w" V
:set window=n 设置文本窗体显示 n 行" @1 M2 h& c/ S: g
vi 的状态
5 C( _/ N( X, q选项 作用, [" \0 v- L J5 T6 ?! h# ]1 h
ctrl+g 显示文件名称、当前的行号、文件的总行数和文件位置的百分比9 a4 C/ |6 l" E) H/ q0 o
:l 使用字母 "l" 来显示很多的特殊字符,如制表符和换行符1 H3 o2 @( p1 j
在文本中定位段落和放置标记
9 n4 j7 C( V+ s5 U5 c选项 作用
( F# I2 s5 R7 t5 m) a% v V{ 在第一列插入 { 来定义一个段落
" m5 K+ W8 J1 K6 X1 n[[ 回到段落的开头处! ]$ x, j& S5 p1 U. m6 C
]] 向前移到下一个段落的开头处
" o: E5 c. w4 P$ r9 C& B1 F% c: _8 y在 vi 中连接行) f; C5 Z- w5 ^* r$ b1 o
选项 作用
# U: R+ a; l+ e; S3 sJ 将下一行连接到当前行的末尾2 q/ E. `; ^/ m- X) m
nJ 连接后面 n 行- G1 q4 x8 v; B" s) h2 {
光标放置与屏幕调整( z( j4 ~4 A! x3 R6 T
选项 作用/ ~' p9 Z* M+ n: ]
H 将光标移动到屏幕的顶行
4 j2 K: W+ w/ F7 `& Z% \- |nH 将光标移动到屏幕顶行下的第 n 行/ \+ M9 x+ \) N2 i7 m
M 将光标移动到屏幕的中间0 [+ C+ g4 o0 b* b
L 将光标移动到屏幕的底行: i. w, d9 _* _9 w C: {. D" {6 V
nL 将光标移动到屏幕底行上的第 n 行7 B- e) s3 d% w w' o) F3 O
ctrl+e 将屏幕下滚一行: K9 M+ p" R' d. x1 M" K& A( Y
ctrl+u 将屏幕上滚半页
. z- Z) n( {8 V w. i/ Mctrl+d 将屏幕下滚半页+ C' n% H n5 x( Y# L! Z, w
ctrl+b 将屏幕上滚一页
( p" r$ x4 \! H! bctrl+f 将屏幕下滚一页5 M% [7 h+ D( A' k
ctrl+o 退出插入模式进入普通模式,操作后又进入插入模式
; H5 @ i/ O- Lctrl+p 编辑模式下自己主动补全
4 E( @ z6 G# S4 {zz 重绘屏幕,使当前行移动是屏幕正中间+ E% |& Q- B$ `( ? h. O
z-return 将当前行置为屏幕的顶行* a6 v# S( C& h8 _; ?9 g/ l1 E
nz-return 将当前行下的第 n 行置为屏幕的顶行* n4 ]+ r9 ~6 t3 Q R. M
z. 将当前行置为屏幕的中央+ T0 f7 C8 H0 {1 R4 B
nz. 将当前行上的第 n 行置为屏幕的中央) G; g9 E. D. a$ E$ {- o
z- 将当前行置为屏幕的底行
2 y* b& d' H) c0 I4 S3 Tnz- 将当前行上的第 n 行置为屏幕的底行6 u3 Q0 p$ O. k3 d" d: I
:syntax on 语法高亮6 c' b! ]& R4 M/ B L
:syntax enable 语法高亮
4 Q% Q* z5 `* A! c7 w3 J+ H:syntax clear 取消高亮& t% ^: F* P5 H) a: J
:color color后加空格然后按table来切换配色方案/ q2 C+ w5 n* ]2 g- T
:set hls 高亮查找的单词" Y' p: W$ A. G0 P
& j. j& o8 x+ ?. H: n$ l宏
) R b' ^8 ~! B! v4 _qa(q表示開始录制宏,宏的名字为a)
w, s M& ~* w# V/ @再记录操作% C @' Y9 g% [/ h
最好按q(表示宏录制结束)% J+ W6 d, U$ u C
使用:@a,宏运行一次。
7 O) u: X' q/ f
& S& P# d9 D; i6@a。表示运行6次宏a。1 C% t5 f# ^# ^
( l" q) @: n7 o5 P5 T% P' ]. svi 中的 shell 转义命令
! M) _8 P3 c& b选项 作用8 S7 ^- F* l+ H. ~2 X
:!command 运行 shell 的 command 命令,如 :!ls3 [, ~2 B1 j8 V% z/ D- a9 h4 _
:!! 运行前一个 shell 命令" o1 `+ S# \ v, ~+ u4 I
:r!command 读取 command 命令的输入并插入。如 :r!ls 会先运行 ls。然后读入内容 n, h7 }# c2 D: @. a% l$ y
:w!command 将当前已编辑文件作为 command 命令的标准输入并运行 command 命令。如 :w!grep all0 `- W6 q# ?' L9 Z( ~; J0 L
:cd directory 将当前工作文件夹更改为 directory 所表示的文件夹' C7 x2 T4 o0 O8 U
:sh 将启动一个子 shell。使用 ^d(ctrl+d) 返回 vi8 T+ |. j5 A6 E0 ?# Z0 p% \3 W; I
:so file 在 shell 程序 file 中读入和运行命令
& g2 o' ?9 `# \) M, g' ~: lvi 中的宏与缩写2 M i9 \$ r/ Q
(避免使用控制键和符号。不要使用字符 K、V、g、q、v、*、= 和功能键)0 a( y1 \7 b6 q
选项 作用
. n. b* I% F% O' s7 V# s8 a' }:map key command_seq 定义一个键来运行 command_seq,如 :map e ea。不管什么时候都能够 e 移到一个字的末尾来追加文本+ y `! z8 C; r. c5 Y) T& `- d9 [' I
:map 在状态行显示全部已定义的宏5 s+ C0 [8 P* R" E0 c0 R
:umap key 删除该键的宏5 G: q: r! v0 U
:ab string1 string2 定义一个缩写,使得当插入 string1 时,用 string2 替换 string1。当要插入文本时,键入 string1 然后按 Esc 键,系统就插入了 string2
. F$ m7 T! Y$ K) t" O# b9 L:ab 显示全部缩写5 W- @. J. q9 s9 D1 H
:una string 取消 string 的缩写
% ]: a, F0 ?. U7 M8 ?- g5 f! y在 vi 中缩进文本
4 A8 K9 \; r' c" N& F选项 作用
: Y0 f: v) N4 F" Wctrl+i或 tab 插入文本时。插入移动的宽度。移动宽度是事先定义好的: P& C6 ?0 Y7 G( i/ m
:set ai 打开自己主动缩进
. ]. H \# r& t' o! a9 x:set sw=n 将移动宽度设置为 n 个字符2 D/ O* D1 O+ a3 x, u( |+ x' w9 g
>> 使当前行向右移动一个宽度! D) C p8 O% r! g
n>> 使 n 行都向右移动一个宽度,比如 3>> 就将接下来的三行每行都向右移动一个移动宽度。假设省略n表示使当前行向右移动一个宽度。
3 X* r) j8 K8 Q# ^, b2 i
_& f7 P+ U, ^6 V6 |
/ }7 I' | `6 r( J7 X# h& ~>G 使当前行至文档结尾都向右移动一个宽度/ f' f* @( i: i9 S# n8 \
: u9 l t6 k5 A3 C: J, C! B; N8 i
可视模式
5 e$ w0 {$ a; H为了便于选取文本。VIM 引入了可视(Visual)模式。
9 C4 Y8 r1 i: w% j( O
: b6 o" \* F) x" C' l+ O0 H要选取一段文本,首先将光标移到段首。在普通模式下按 v 进入可视模式。然后把光标移到段末选中内容(移到行首^,行末$)。须要注意。光标所在字符是包括在选区中的。
! T9 h" }4 U, ~2 d7 Z6 z+ x
4 @" ^/ B4 h& [2 R. L这时能够对所选的文本进行一些操作,经常使用的(可视模式)命令有:) q C+ H9 c" F( @- ]
x或d 剪切(即删除,同一时候所选的文本进入剪贴板) $ ?+ a; @- i0 E) b0 E, l
y 复制 9 o' {$ T) O8 [! S
r字符 全部字符替换为新字符
0 I7 {! ~$ G7 |8 A; lu U ~ 各自是全部字母变小写、变大写、反转大写和小写
& A% A5 U6 M# ]当输入了命令以后。VIM 将回到普通模式,这时能够按 p 或 P 进行粘贴。普通模式下有关复制和粘贴的命令:+ t. X D$ |7 d5 }
v 进入可视模式 4 T+ b' ~$ E5 a: N2 L5 _
p或P 在当前位置粘贴剪贴板的内容,p 粘在光标所在字符后面,P 粘在前面
9 t* | G+ S# l不得不承认,尽管引入了可视模式。复制和粘贴在 VIM 中仍然是比較麻烦的操作,这或许是 VIM 唯一的缺点。此外,VIM 还引入了选择(Select)模式。跟可视模式相似。 |
|