EDA365电子论坛网

标题: linux下vi与vim使用与区别 [打印本页]

作者: dapmood    时间: 2021-2-24 10:37
标题: linux下vi与vim使用与区别

& p% h4 E- y9 W$ ?/ j【1】VI与VIM区别
6 ]+ E, B+ \( M$ V- ~% Z: ]7 r9 o2 ~  A/ d7 n8 L; f5 z& {
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。# v; x0 k8 b# o9 F* o% ]; E) c

# o. f. F# d2 a0 \# Kvim的这些优势主要体现在以下几个方面:& x6 g( h/ B  b7 i
. \4 Z* h/ T1 o2 j  v# [6 B2 {
1、多级撤消 - X/ k; {" y. F
我们知道在vi里,按 u只能撤消上次命令,而在vim里可以无限制的撤消。6 o, S  p! |5 Y& O( l
  {' a& F6 l# ]: H
2、易用性, }# @4 O. f: J' o( `/ ~  n

  t& T" V! m) v- @- nvi只能运行于unix中,而vim不仅可以运行于unix,windows ,mac等多操作平台。! X8 {) k1 L- Y9 Z+ i4 y+ e

' }* x. Z1 r/ }' X+ Q3、语法加亮
5 R& R, Z: H. |, e4 L9 Tvim可以用不同的颜色来加亮你的代码。
, }* J$ B1 J8 F! ?& T6 u
9 h  P* z% N- s+ Z4、可视化操作
9 r/ ]( l* G# `& _: F4 h4 u就是说vim不仅可以在终端运行,也可以运行于x window、 mac os、 windows。( @0 `' X# x7 x- @
! b4 L5 j: Y, d- h; x  o, I
5、对vi的完全兼容 / z! p5 L" }) W2 [! S7 }
某些情况下,你可以把vim当成vi来使用。6 c/ _# D  P0 L: o# k: k
9 ]( z$ ]/ @3 y4 ^* A
vi和vim都是Linux中的编辑器,不同的是vim比较高级,可以视为vi的升级版本。vi使用于文本编辑,但是vim更适用于coding。9 N1 \3 F- k+ ^, g8 w+ X3 u9 ^7 E  _* o* V

) W, H" U' ^, V( ~( l【2】VI模式
* w0 W# U! A/ H5 K, ^* I# ]: w" E+ l% n% |& Z9 g6 {, m7 X
vi有3个模式:命令行模式 (command mode/一般模式)、文本输入模式 (input mode/编辑模式)、末行模式 (last line mode/指令列命令模式)。9 s: O/ O" E. R4 ]5 L% \- P

& @. C8 h& v  F/ q命令行模式 (command mode/一般模式)
! B$ R2 K! G: _
7 J: D) E# i( C( x+ i  任何时候,不管用户处于何种模式,只要按一下“ESC”键,即可使Vi进入命令行模式;我们在shell环境(提示符为$)下输入启动Vi命令,进入编辑器时,也是处于该模式下。
( }$ [4 c; j  R) o. a$ R+ {  在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的Vi命令,则Vi在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是Vi的合法命令,Vi会响铃报警。
. w4 Z" s* W& R5 I
0 c1 ~; E# Y5 c) Q1 |文本输入模式 (input mode/编辑模式)) }- w/ u& ^4 t3 N& h9 e2 I

& c/ w3 \: p9 s( _6 z6 ?- z  在命令模式下输入插入命令i(insert)、附加命令a (append)、打开命令o(open)、修改命令c(change)、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被Vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按”ESC”键即可。
0 P! J2 c0 A. B) ?4 V3 _# n7 I* _
8 J3 E6 z/ P% `/ X. Y0 M, k末行模式 (last line mode/指令列命令模式)9 o; Z4 Y( Z0 y6 I2 ]
5 N' @8 e; L. V7 i
  末行模式也称ex转义模式。 + i& T9 f4 b! O; Z4 h! x7 s
  Vi和Ex编辑器的功能是相同的,二者主要区别是用户界面。在Vi中,命令通常是单个键,例如i、a、o等;而在Ex中,命令是以按回车键结束的正文行。Vi有一个专门的“转义”命令,可访问很多面向行的Ex命令。
, u# S' o  N. |4 z- d% g; N5 d! I  在命令模式下,用户按“:”键即可进入末行模式下,此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行完后,Vi自动回到命令模式。1 d% W' M6 J( T/ T: P9 g
' b% H' v! ^  }9 `  e
【3】VIM模式
7 i9 k1 W+ I/ \) h; X& E, u- @7 b' t8 z( V4 k0 d7 ]
vim一共有4个模式:$ g- s5 ?5 s/ B4 W* ?. z9 x
" I  P9 {: v6 W
正常模式 (Normal-mode)
# d7 |: H* I6 V  J. \
' y( S/ @/ Q7 [  n插入模式 (Insert-mode)
/ u- b8 C5 n* y: {
& Q. K& K& k4 R7 P. X  Y: v) n命令模式 (Command-mode)
* r4 }  E7 w5 P1 v
5 y8 R# j+ N8 w可视模式 (Visual-mode)5 }: V  w, X! e7 B, k% A& P! J
2 d& U' G1 K+ V& g, J! @+ _+ `
正常模式
* N4 `( J' Z) _$ Y- {9 B, |6 @* g" ^) k) `
启动vim后默认处于正常模式。不论位于什么模式,按下键(有时需要按两下)都会进入正常模式。
+ ^+ V7 f: [; V; H0 G. A+ \# y+ p9 }( x
插入模式9 d( V3 q. ?1 Y4 u
7 \, C: a8 x" T  S0 m/ t
在正常模式中按下i, I, a, A等键,会进入插入模式。6 _) e- g2 k/ y  W3 K

5 V  @+ \& u3 Y7 M- T现在只用记住按i键会进行插入模式。在插入模式中,击键时会写入相应的字符。+ a' }2 P0 ?4 E% Y6 Z# l. X+ c4 B

/ a5 l% Y8 w* j+ M$ u命令模式! u1 n1 \' G2 h' h& A

3 `6 |. o8 _/ k% o% v在正常模式中,按下:(英文冒号)键,会进入命令模式。
7 {) i9 E0 B" h6 M9 S+ G' o3 ~
: O% I- a" a  e+ k2 T7 B% i5 Q6 X7 D在命令模式中可以执行一些输入并执行一些vim或插件提供的指令,就像在shell里一样。这些指令包括设置环境、文件操作、调用某个功能等等。" N  P4 k% l2 O  Y; }& H
) }5 v3 r; O$ g: o" P
常用的命令有:q(退出)、q!(强制退出)、w(保存)、wq(保存并退出)。2 W" M) G- N+ f+ D6 ]. \

1 u  v  Y8 ]% t; X可视模式
4 I+ t& y2 H0 u# m6 {0 t: ~1 E3 }- }; Z" b& J
在正常模式中按下v, V, +v,可以进入可视模式。
( g) q( S; [+ U7 \
: b* n& G  C, n. l: B, U! `) `可视模式中的操作有点像拿鼠标进行操作,选择文本的时候有一种鼠标选择的即视感,有时候会很方便。
: L# l% }9 J" y3 A/ e
$ w6 v- w8 x$ ?' n打开文件、保存、关闭文件(vim命令模式下使用)" {6 ]# K1 S' Q
6 ^! p( j3 g: y1 G! U8 K
命令的使用请先按ESC进入命令模式!
' u: q8 G# ~' u' q$ R' I4 u; J8 S+ m" c' ?" T2 n
vim filename       //打开filename文件! [# `! }! j3 G" O! h) p
& B5 n. @8 I" j) n% ?" w+ l  i
:w vpser.net //保存至vpser.net文件$ v1 Y% Y" \: b, x" R- M

/ A  m: A0 H  r# d1 Z$ E:q          //退出编辑器,如果文件已修改请使用下面的命令7 h( M. p4 u- a3 D- q: ~

7 \- }3 }  U6 @6 l2 [) |:q!        //退出编辑器,且不保存
- x2 V0 {% u8 d7 H
, O3 X3 s- K3 H' R1 u8 x8 a:w        //保存文件' @  k1 K, t$ N" S/ B- H; }
3 ]: W! D5 C. s+ \; d
:wq         //退出编辑器,且保存文件% E0 \% t% X7 M1 y5 Y$ J& S
" G& d6 E% e& w" M/ x# e' X! `
:x          //退出编辑器,且保存文件
; U  L' |" i# t* x& y9 ?
, ?& n3 {$ h& K7 O修改:Insert键0 H: z) F, a3 F9 R
1 w/ O+ m+ g" F9 l3 p
插入文本或行(vim命令模式下使用,执行下面命令后将进入插入模式,按ESC键可退出插入模式)' ~  X2 x" e+ I+ F; c, u$ x

/ V  h+ j3 |. `! k9 da      //在当前光标位置的右边添加文本+ I; Y6 L0 R/ h8 J

6 f" Z- ~: H# |: T+ F( Mi       //在当前光标位置的左边添加文本
% s+ L8 H4 c. T# {& i7 i1 g2 Y
6 _# N: y+ _8 D: x! N8 [- P) |A     //在当前行的末尾位置添加文本- P) U" U# X# u! |
8 d; R8 m' @  A. }/ E
I      //在当前行的开始处添加文本(非空字符的行首)
+ u& S# x% F- @6 U9 K5 v- i2 z* y# F6 k! U3 K/ v2 C8 t/ k
O     //在当前行的上面新建一行1 X. \, x+ j$ X( C  g

; z" \& D5 o0 Xo     //在当前行的下面新建一行2 Y( f/ a$ u+ \0 x& m5 _

( i% n7 V9 r' f: c& x$ sR    //替换(覆盖)当前光标位置及后面的若干文本
6 q0 z4 ^  |3 U. e7 w+ I5 Q9 T& m) {5 L
J    //合并光标所在行及下一行为一行(依然在命令模式)
作者: SsaaM7    时间: 2021-2-24 11:09
linux下vi与vim使用与区别




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2