易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 4517|回复: 1
收起左侧

linux VIM基本命令

[复制链接]
发表于 2018-9-20 15:51:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?开始注册

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)模式。跟可视模式相似。
 楼主| 发表于 2018-9-20 21:36:32 | 显示全部楼层
常用的几个功能:
( K6 ~( x0 H$ u4 G) a" @$ a  p4 tvim 的编辑模式:   i字母  写入0 U' A8 [" P8 y% v9 {: s
:wq  保存退出3 K/ v" n! O, a9 f
%s#字符一#字符二#g   替换字符或者数字6 l, K$ ~2 B/ P, W4 l' r6 K

6 }+ l$ E( i' q3 o5 ?2 W9 Fyy 复制行
; W, M( z" Q* Kdd 删除行
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )点击这里给我发消息

GMT+8, 2026-4-8 23:52 , Processed in 0.051948 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

快速回复 返回顶部 返回列表