|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
, m) g/ y+ k( F9 G6 j' N) q【1】VI与VIM区别; O, e$ d5 U% O
8 s+ Z% ^. s* V# J* H- J3 y; L它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。3 y- l/ l$ u5 W- _$ t
/ E% ]3 {; n- Q! a, W, d% I5 |
vim的这些优势主要体现在以下几个方面:' F" e$ v- c6 F I; ^- }7 B
( ?2 F' j' A0 u3 e4 P# Q
1、多级撤消
" O+ ^3 a; v- Y( g$ w0 M我们知道在vi里,按 u只能撤消上次命令,而在vim里可以无限制的撤消。, _: n2 d: e/ Y( W+ M+ T
' |) b. O! P$ F# [3 R0 L$ ?2、易用性
/ f" F+ o5 f! d, T* Z& N% q& h: A$ K! g+ N! ]
vi只能运行于unix中,而vim不仅可以运行于unix,windows ,mac等多操作平台。( r! X+ E' {4 }& z+ X2 }
: B5 n; l9 h q# o
3、语法加亮
: G* L( Z! q) G. E5 ^, f* ~) x7 L* ]vim可以用不同的颜色来加亮你的代码。
: S* C) @7 x# o/ J& c
3 N" E: v5 f/ J4、可视化操作
5 e2 {' c( Z5 z就是说vim不仅可以在终端运行,也可以运行于x window、 mac os、 windows。4 y' c9 R, F) \2 G! g" A2 s
8 H; @6 y$ y2 N Z, I5、对vi的完全兼容
0 c1 j L2 \+ Y7 E0 G某些情况下,你可以把vim当成vi来使用。
, a* E' ?" {# ^3 {; c! p8 y& M4 Q3 S: n
vi和vim都是Linux中的编辑器,不同的是vim比较高级,可以视为vi的升级版本。vi使用于文本编辑,但是vim更适用于coding。
% A' q! ^& p1 [% u; ]! J; Z3 G, D9 j$ n) M3 H; k
【2】VI模式$ c* g0 {# X1 V
9 ?7 M. o0 j R
vi有3个模式:命令行模式 (command mode/一般模式)、文本输入模式 (input mode/编辑模式)、末行模式 (last line mode/指令列命令模式)。
9 z" D6 `. Y( U8 T" ~7 ]# M
0 y9 X7 z: n3 {( l$ `9 H: Z7 w! L命令行模式 (command mode/一般模式)
5 s# o/ |8 j. L5 Y6 Q5 v
7 y2 M% j0 [0 `* ~1 |& ^ q3 E 任何时候,不管用户处于何种模式,只要按一下“ESC”键,即可使Vi进入命令行模式;我们在shell环境(提示符为$)下输入启动Vi命令,进入编辑器时,也是处于该模式下。
/ h/ ?- n6 Q+ G( c- k 在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的Vi命令,则Vi在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是Vi的合法命令,Vi会响铃报警。
) E, F- Q# h8 i# o/ X) B# I* s
* G4 s; o9 l% k- L文本输入模式 (input mode/编辑模式)% e S) L7 c$ T3 ~4 ^! h5 e
8 |; j; E3 c; ~. s' i) ]; L
在命令模式下输入插入命令i(insert)、附加命令a (append)、打开命令o(open)、修改命令c(change)、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被Vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按”ESC”键即可。
+ h% E' V. U% D. o$ z7 R# _
8 \9 z1 U, r8 q: P9 V( a5 \末行模式 (last line mode/指令列命令模式)
3 {8 w% p/ e7 f; s; {5 Y4 ]. G6 T8 |, o; F/ V. Y
末行模式也称ex转义模式。
9 C2 J+ L' S* q! |" E8 y Vi和Ex编辑器的功能是相同的,二者主要区别是用户界面。在Vi中,命令通常是单个键,例如i、a、o等;而在Ex中,命令是以按回车键结束的正文行。Vi有一个专门的“转义”命令,可访问很多面向行的Ex命令。 * M& Q- s$ {3 ]4 f% Z; N( ^/ w
在命令模式下,用户按“:”键即可进入末行模式下,此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行完后,Vi自动回到命令模式。
4 m) a* @/ ]4 u
* e" O+ Y. q/ w$ C* |【3】VIM模式9 [/ I, k$ G$ r8 m! `1 s6 F
, O, A( [$ W' o) o+ b( h" |
vim一共有4个模式:
: B0 x9 ~' Q4 q/ e, e8 q$ ~5 `$ N% X- b+ g/ D4 w6 S
正常模式 (Normal-mode)
7 n; {2 Y9 Z; J, b5 B, o! I& v: F: B" F4 l
插入模式 (Insert-mode)! M: j" O3 i/ l; X+ S2 E6 x
. ]# N1 a/ e! K7 q
命令模式 (Command-mode)
# ~: N5 D/ _ ]8 ~& {. `5 O& I% d( d9 Z5 l& ~% l( a% w2 k
可视模式 (Visual-mode)" w0 j3 ]" H0 S/ _+ l: u
% J! M: F$ h/ d- u1 w [. K正常模式: L. c2 F' p' k* W9 K! F% \
9 f; N; [: x1 S* l: `启动vim后默认处于正常模式。不论位于什么模式,按下键(有时需要按两下)都会进入正常模式。1 J( | M: a h0 C, a1 y/ X
$ x* B* s9 V/ e9 G6 |! {
插入模式
2 }( s O1 i0 g6 n# Z/ m2 k O7 y- E4 |1 o* |
在正常模式中按下i, I, a, A等键,会进入插入模式。
0 D ?. A6 R3 j+ ]/ S) ]; L2 S" ^0 X$ }* }' o2 I
现在只用记住按i键会进行插入模式。在插入模式中,击键时会写入相应的字符。" i: y6 P$ h0 v3 `/ b7 Y
) W& v* e7 z5 L8 o0 N
命令模式2 s3 @, {. U! A' z
, V3 \4 a( C) r) M" G$ I) V2 K: K在正常模式中,按下:(英文冒号)键,会进入命令模式。
1 ^* w5 n3 f5 F( f2 O) K7 ?9 w/ R" m; C( Z- N; P
在命令模式中可以执行一些输入并执行一些vim或插件提供的指令,就像在shell里一样。这些指令包括设置环境、文件操作、调用某个功能等等。3 d- m3 e% f9 G) @# e2 O
% E+ o- |4 {+ }& u* u& M5 w
常用的命令有:q(退出)、q!(强制退出)、w(保存)、wq(保存并退出)。
4 W: E( L. u5 P! p- R
1 H$ X2 J8 V6 [- d1 ?可视模式5 f" Y* \/ L* a5 i2 H
4 ~3 i/ s" B5 R" L5 N# U- p0 S4 R在正常模式中按下v, V, +v,可以进入可视模式。
, i+ ?4 R1 `) W, V- {8 {$ w6 U; r( K& M/ N8 w, s7 H+ v
可视模式中的操作有点像拿鼠标进行操作,选择文本的时候有一种鼠标选择的即视感,有时候会很方便。; b& g& H5 K& P7 H
! k5 W* F$ l t; B7 @* m打开文件、保存、关闭文件(vim命令模式下使用)
/ x }) g1 o' R( N1 u8 |- U# F* x" w
命令的使用请先按ESC进入命令模式!( P# L: T% ~5 z v( N; b
: n; o P1 {- ]# t
vim filename //打开filename文件9 Z6 @! S- w7 N- w! H
9 m( K: {. `- u' z+ V2 M:w vpser.net //保存至vpser.net文件
3 g- r1 Q" X8 `# [# b
! {7 s- i6 b2 `2 ^$ E: Y:q //退出编辑器,如果文件已修改请使用下面的命令! K) P% x* [5 C# X( C
! b. ?" T+ w4 {:q! //退出编辑器,且不保存& S8 ]/ P& Y8 s: R3 K. n2 F
' h; G- W8 l3 h) v( @: C/ y8 O; N
:w //保存文件
S& P i) F+ m: y" }, v$ G( | U+ S9 o
:wq //退出编辑器,且保存文件
- J7 S! e1 d3 @. C* M, j- S) Z) }- j6 I: D, {
:x //退出编辑器,且保存文件
, n K5 v Y" b( \! B
" Y' c' y# ?, ?0 B# A修改:Insert键
$ n. Q4 h& m' {8 p; ]0 A
- L& Q3 H7 s: ~插入文本或行(vim命令模式下使用,执行下面命令后将进入插入模式,按ESC键可退出插入模式)
8 \. ~* z$ U1 C) m
% _5 z' G K3 |) `+ Ea //在当前光标位置的右边添加文本
+ R9 p8 ]# e5 h3 G' \9 r; B M* K$ O6 \; d# M: r
i //在当前光标位置的左边添加文本- t _4 B( k" X" l! x. v2 J2 k: f( _5 ]4 H
, l- w4 b/ ^( z0 v i8 W1 GA //在当前行的末尾位置添加文本
' V3 _' o9 [+ O' k; C# @0 h
7 q6 J) p; D: X; j1 a5 aI //在当前行的开始处添加文本(非空字符的行首)4 R: i1 [& P7 s2 h8 E
) Q6 d4 ]4 S+ ?8 e' o) E$ \/ R
O //在当前行的上面新建一行& r) L" l: Q! Y. ~# e
- Q0 r" z9 k* f$ C! s6 No //在当前行的下面新建一行8 j4 o; g5 l) U, Z+ c2 m3 A- S' E
+ l6 T/ j5 j+ w
R //替换(覆盖)当前光标位置及后面的若干文本
6 I% ^7 \9 q/ \# x* j: p' Q
' s8 b( q* q1 DJ //合并光标所在行及下一行为一行(依然在命令模式) |
|