找回密码
 注册
查看: 4522|回复: 1

linux VIM基本命令

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2018-9-20 15:51:05 | 显示全部楼层 |阅读模式
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)模式。跟可视模式相似。

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2018-9-20 21:36:32 | 显示全部楼层
常用的几个功能:9 x% v' Q6 P1 w; u: t$ l8 u7 s4 v: ^
vim 的编辑模式:   i字母  写入
0 A$ v' }5 p. M4 r) Q1 c& m:wq  保存退出2 L2 L. _/ C% Q
%s#字符一#字符二#g   替换字符或者数字* I# g8 [( A! c, T1 e0 I

% F* m, F+ f0 `3 Lyy 复制行5 X9 i4 L( T- M9 k  I) ?5 }" w
dd 删除行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 01:59 , Processed in 0.022926 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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