找回密码
 注册
关于网站域名变更的通知
查看: 399|回复: 1
打印 上一主题 下一主题

linux下vi与vim使用与区别

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-2-24 10:37 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您登录!

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

x
, x. ~' g. X( t( W
【1】VI与VIM区别& W0 J" \- J' a' R' ^* J7 ^2 A* h
7 ^! t# [$ R% C
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。' g4 ^. h2 \: M8 S: j- g
3 ?0 S" r8 L% j/ m7 G8 _8 z; T
vim的这些优势主要体现在以下几个方面:
: @8 O) E7 d( X2 u, T  ]
9 V2 h, s8 A: }6 _1、多级撤消 ) ]1 o8 x+ x8 t2 ~; X2 @2 S
我们知道在vi里,按 u只能撤消上次命令,而在vim里可以无限制的撤消。% B9 {( v1 ]. I: V
4 X" x, L; t' h8 |3 Y' j1 h
2、易用性
+ ~- B, W- a- J9 j! l9 X7 R8 Q: n1 F; g. Q. W7 B
vi只能运行于unix中,而vim不仅可以运行于unix,windows ,mac等多操作平台。, J8 v( ^9 e' N; O' [5 X$ H
3 o: J6 c' [) H
3、语法加亮
: g* {( x" j! F: w+ K) o' Evim可以用不同的颜色来加亮你的代码。
' {5 H2 L$ J! \! L) q3 E- o/ Q6 N3 t% w, E) t) I
4、可视化操作
  I+ S# Z0 t: S6 G* o2 C$ k就是说vim不仅可以在终端运行,也可以运行于x window、 mac os、 windows。
: y( a# a) j, a0 [) X. c% w5 M: t! Y' H/ A( e
5、对vi的完全兼容
0 G7 `  q) d- E某些情况下,你可以把vim当成vi来使用。
, B* D# h$ b2 o9 C+ x& E% F5 U
+ D! m0 F" J3 O. [vi和vim都是Linux中的编辑器,不同的是vim比较高级,可以视为vi的升级版本。vi使用于文本编辑,但是vim更适用于coding。: |! A' H, }2 ?- |6 M$ ?
/ o" x6 ^9 I. o; a7 X3 }  _
【2】VI模式9 }2 X+ h: T/ K1 N! ^
% F* @- t" o' ~0 v
vi有3个模式:命令行模式 (command mode/一般模式)、文本输入模式 (input mode/编辑模式)、末行模式 (last line mode/指令列命令模式)。
) w0 v' I4 a/ Q( p  m+ W( i8 `
: ^# X/ e& G0 [0 M/ M4 v命令行模式 (command mode/一般模式)
1 e& [6 ^9 ~/ _2 d* N+ ?; m( _; f1 _) r) [  X% S5 c
  任何时候,不管用户处于何种模式,只要按一下“ESC”键,即可使Vi进入命令行模式;我们在shell环境(提示符为$)下输入启动Vi命令,进入编辑器时,也是处于该模式下。
/ s0 T% f3 ^" V  在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的Vi命令,则Vi在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是Vi的合法命令,Vi会响铃报警。) v1 ?+ B9 g$ s* E
+ |+ x0 J& J1 a% ]0 G' I
文本输入模式 (input mode/编辑模式)
3 F" J: E- ^: P! x/ B0 p
# S. ~+ g4 c! [9 R; o  在命令模式下输入插入命令i(insert)、附加命令a (append)、打开命令o(open)、修改命令c(change)、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被Vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按”ESC”键即可。. I( @. I$ L/ D4 s6 j

+ k0 z( v/ h, N+ q: @' ^末行模式 (last line mode/指令列命令模式)
" L( n3 _4 m3 d- _( J! k- g: j4 H0 L& n1 w0 M+ H+ u. \2 g
  末行模式也称ex转义模式。
. _2 W$ m6 d" b& h7 n  Vi和Ex编辑器的功能是相同的,二者主要区别是用户界面。在Vi中,命令通常是单个键,例如i、a、o等;而在Ex中,命令是以按回车键结束的正文行。Vi有一个专门的“转义”命令,可访问很多面向行的Ex命令。
3 H$ e- _  S, Y# L" m  在命令模式下,用户按“:”键即可进入末行模式下,此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行完后,Vi自动回到命令模式。. B. J3 [2 c' \( V4 j
4 A) u2 ]( }% w* V  [
【3】VIM模式; t% h( t  T0 L2 }

% W2 k% [! }+ F2 Z) u& r. ?3 e2 tvim一共有4个模式:
. ^7 g; d' v* e) F9 d- ]! I/ H
6 f! j% D" o3 T6 w正常模式 (Normal-mode)0 O4 U0 W) z1 V, {- s

3 z+ _2 ?: z2 k# |0 f6 o. B5 \插入模式 (Insert-mode)
# @7 I1 J3 Q; w; @- h" N" }: m# t0 d" R" B8 \
命令模式 (Command-mode)
- H7 n) z! |/ ~! _/ B7 M3 E/ V: t3 y% {, r' c- l: W6 Y
可视模式 (Visual-mode)
( ^2 j/ Z7 T" j3 s7 Q4 S4 S
2 u* N% i% e5 Q1 O正常模式
) a, P; a3 k7 h( W6 \& m
1 r* ]/ o) [* K; s7 X启动vim后默认处于正常模式。不论位于什么模式,按下键(有时需要按两下)都会进入正常模式。
- ~4 k$ Z6 n" V* I7 |* c% z
$ E  h4 d+ b" i# O插入模式! w3 S0 L2 ~. I

1 q' p3 X! f( g" U8 x& T& ~2 _$ N; x- v在正常模式中按下i, I, a, A等键,会进入插入模式。8 z7 w. T- x8 c( P0 o5 }

+ {# y0 `" ~* \) }$ T/ Y( l现在只用记住按i键会进行插入模式。在插入模式中,击键时会写入相应的字符。
% Z) k9 y# r4 Q6 \6 k* j0 ^! ~4 C- [" a3 F2 g9 _
命令模式# E" x- |/ K) J5 s- {
' f9 f' g0 p. L% {4 p
在正常模式中,按下:(英文冒号)键,会进入命令模式。
% ]- s; H5 b- C0 l+ A8 X3 Z3 n' R2 F2 I- F, P+ W1 V
在命令模式中可以执行一些输入并执行一些vim或插件提供的指令,就像在shell里一样。这些指令包括设置环境、文件操作、调用某个功能等等。6 `- b3 X9 ]3 s% t3 b, H
, R9 _2 N6 ?6 R4 p- h( O
常用的命令有:q(退出)、q!(强制退出)、w(保存)、wq(保存并退出)。
# K0 r3 l  ?- e- u: v$ p  P
/ A" W7 V+ {+ l  R/ `2 w/ E, V可视模式
8 K0 }: t6 M& y9 ]1 I2 W
+ K* A" y( c1 B" H4 r* d在正常模式中按下v, V, +v,可以进入可视模式。0 i* y2 U0 m. V" B6 f' ?+ `4 @; t
0 M# A" Q% R8 \
可视模式中的操作有点像拿鼠标进行操作,选择文本的时候有一种鼠标选择的即视感,有时候会很方便。
2 p0 M/ w* O8 i+ `8 [+ m3 o7 M, N" G) T
打开文件、保存、关闭文件(vim命令模式下使用)+ e; ?# R3 u2 Y' _
2 N. g# W) K. b: I
命令的使用请先按ESC进入命令模式!4 H+ V, x: v* m. v3 W# x8 F

- L; h( W; Q4 l3 kvim filename       //打开filename文件2 [) U9 l+ A7 a% o5 T7 K9 x, x

: y4 ~1 K6 ?: r: s1 `:w vpser.net //保存至vpser.net文件. L. ~; N9 A3 B+ {4 g8 V% ?

1 e$ w# A8 |: \" ~2 S' ?) ]" y$ ^:q          //退出编辑器,如果文件已修改请使用下面的命令5 v- }+ H- D' m0 u, k% O

0 O5 f2 ?* n' v% g1 S# f& y/ g:q!        //退出编辑器,且不保存
, f& V/ ?. F+ T& ~. h( {! \# a* ?4 w
:w        //保存文件) g; {) A5 \* n- n8 t

+ @! s' s1 ]" Y, F0 c2 a:wq         //退出编辑器,且保存文件) x5 w/ w( [6 `2 A9 B, v* }# Q& W
+ R6 Z" ~  ^4 n
:x          //退出编辑器,且保存文件4 G4 x1 U+ C, B7 d: W

& l6 \! _9 y  [1 r/ _3 L+ x; p修改:Insert键
0 Q; k* z- O- I/ K) j; D2 {# O- ]8 D. \
插入文本或行(vim命令模式下使用,执行下面命令后将进入插入模式,按ESC键可退出插入模式)  {$ }; u2 w1 j
, F8 K3 l7 }5 r' u' p* B4 Z  h
a      //在当前光标位置的右边添加文本
$ I) y  i6 ~7 {: n1 f+ a4 T3 h+ l- L
i       //在当前光标位置的左边添加文本
7 P' ^/ ]2 x) L9 m  i2 q5 K$ x9 k- [( R9 }: q3 j4 G1 p2 \, c
A     //在当前行的末尾位置添加文本2 H$ ]1 T! Y- _0 {+ M

& N/ d9 b" l& s; Q( ~5 HI      //在当前行的开始处添加文本(非空字符的行首)
# V6 M: O9 P) v- P) S: y# l  \; n2 l6 C/ r$ w4 D3 @8 r
O     //在当前行的上面新建一行
/ S# x2 Z( V9 o# K* x$ {0 ~
$ W7 x/ k4 n0 u: W  T/ fo     //在当前行的下面新建一行7 `/ ?' D  {2 p7 F6 l9 b

4 A+ r9 }1 S9 A3 y$ [7 NR    //替换(覆盖)当前光标位置及后面的若干文本
* z! H% T0 L4 P" j$ R/ |& ?9 g0 m
J    //合并光标所在行及下一行为一行(依然在命令模式)

该用户从未签到

2#
发表于 2021-2-24 11:09 | 只看该作者
linux下vi与vim使用与区别
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 18:25 , Processed in 0.171875 second(s), 25 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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