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

linux下vi与vim使用与区别

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
$ n, O- {$ X: f* ?& U( T8 n4 H
【1】VI与VIM区别+ [1 `6 L  m/ a) y9 n  {6 i$ F

  {, n+ I/ D/ I2 p6 e% z它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。
. |$ _" Y# h) L- p9 y& O7 [# X5 I
vim的这些优势主要体现在以下几个方面:
4 a+ w/ k! n) S3 `3 Q$ Z/ W# R
2 U. E- O( i2 R' @  `: {& @5 D5 g1、多级撤消 % [/ |8 ]$ C& d' u: y- z
我们知道在vi里,按 u只能撤消上次命令,而在vim里可以无限制的撤消。: ]2 r# a( P; q. X7 A* L4 [+ c

# q. A6 U5 v  Q2、易用性) v. U2 r8 T+ j1 t. ]0 s
; a. A! O5 Y: ^* ~% a3 p
vi只能运行于unix中,而vim不仅可以运行于unix,windows ,mac等多操作平台。' J! _% \9 @/ e  k

" n2 S# V( y7 r0 Z& P+ r/ i3、语法加亮
6 L  L" a, Q& n! a: `vim可以用不同的颜色来加亮你的代码。4 l$ C6 |4 Z* w8 v( r$ y* F
$ I% I3 B* R5 M8 u% ?9 p9 k
4、可视化操作
0 q- u$ y5 J- m9 _& L就是说vim不仅可以在终端运行,也可以运行于x window、 mac os、 windows。3 P2 q8 l9 Q6 q  }  d

: h1 [' `2 r+ I7 G5 \! M5、对vi的完全兼容
! j4 R, \+ y1 `* w( e- n& I: Q某些情况下,你可以把vim当成vi来使用。/ R& z" N  |- c$ t
2 p, h, c  z8 r
vi和vim都是Linux中的编辑器,不同的是vim比较高级,可以视为vi的升级版本。vi使用于文本编辑,但是vim更适用于coding。2 |- Z" O, _0 m" R, w% P

7 s* c1 c, ]2 `6 O  m【2】VI模式! Q6 M" ~* o5 U4 E
0 O1 ?1 o. U# Y) B) ^" k
vi有3个模式:命令行模式 (command mode/一般模式)、文本输入模式 (input mode/编辑模式)、末行模式 (last line mode/指令列命令模式)。* _; M3 K# w" R" }5 f* M- i

# h7 K# a1 A/ g$ M: C1 z命令行模式 (command mode/一般模式)( g0 {5 g* F5 e2 O% a2 K% S+ ?* e

) t% X2 c( t- _4 b  任何时候,不管用户处于何种模式,只要按一下“ESC”键,即可使Vi进入命令行模式;我们在shell环境(提示符为$)下输入启动Vi命令,进入编辑器时,也是处于该模式下。
. f. D* ]! L. Q  在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的Vi命令,则Vi在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是Vi的合法命令,Vi会响铃报警。
# ^; z( d6 j& G' _" a/ d# @+ t1 F! e+ M+ M4 u; z) ~
文本输入模式 (input mode/编辑模式)
0 j. Q2 ~- }  a
  z& C& n2 k9 f6 |4 y9 e4 d  在命令模式下输入插入命令i(insert)、附加命令a (append)、打开命令o(open)、修改命令c(change)、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被Vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按”ESC”键即可。
) f+ F! B, J7 Q* g) r4 Q7 d" B- e' `
末行模式 (last line mode/指令列命令模式)
' z) F% Y3 [, ~: A( ]. x4 }) R( g. [1 ^0 {' Q
  末行模式也称ex转义模式。
6 F/ U5 \4 F. p  Vi和Ex编辑器的功能是相同的,二者主要区别是用户界面。在Vi中,命令通常是单个键,例如i、a、o等;而在Ex中,命令是以按回车键结束的正文行。Vi有一个专门的“转义”命令,可访问很多面向行的Ex命令。 8 D8 X' l$ P& K; x1 Y# J
  在命令模式下,用户按“:”键即可进入末行模式下,此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行完后,Vi自动回到命令模式。
$ Y: R& c% n; G( h4 C+ I4 \/ _) H0 U4 u8 h6 q% `! S
【3】VIM模式2 b$ v' v7 S+ t( U- E! y' j, y6 `

; h, O2 ~6 A  i. D1 s9 f$ |. kvim一共有4个模式:
; @3 @- ~/ {% s! |1 w; Z- N% {$ g+ I$ S3 ~$ ^8 f  K
正常模式 (Normal-mode)8 p) T8 u1 H) `  ]7 X" E/ v% ]7 ]* N

4 i6 E6 D: H, U( X  f# P4 z插入模式 (Insert-mode)! y: T' p" v& M1 C( B
: r2 ~) o6 z6 b7 }) g* W- a# a
命令模式 (Command-mode)
7 u0 N1 R8 b; ^8 L" W% H% _* n- m6 _1 c  G
可视模式 (Visual-mode)
2 \3 @4 N: t# D
$ d  N8 O; L- E6 f5 ?* k正常模式/ r, }' a# C5 S% b/ Y& w% b
5 G" k( f' ^# V$ i; `9 |0 s
启动vim后默认处于正常模式。不论位于什么模式,按下键(有时需要按两下)都会进入正常模式。# `; y1 I8 i/ n- S" |
/ q' Z- o5 e9 D+ Q% n2 b1 N) e- ]
插入模式9 ^0 k! G: b  v$ G% e/ b% r' f2 D) ?5 d
  u% j1 J' s+ C" b" f* g
在正常模式中按下i, I, a, A等键,会进入插入模式。
' F; i4 X. a$ u/ x* P6 A( U0 G0 h% _/ X  Q5 c+ N+ N- I
现在只用记住按i键会进行插入模式。在插入模式中,击键时会写入相应的字符。
/ |3 A' I' j6 }; A/ X
. P! g- A9 H% I命令模式
+ y/ D: O2 C% i) d7 C$ n# J
& U% A# a7 d  u在正常模式中,按下:(英文冒号)键,会进入命令模式。3 B+ l! G( D; W4 ^' A2 c6 |0 `- n

0 j2 {1 z0 V$ z  d) Q$ ]9 u- y在命令模式中可以执行一些输入并执行一些vim或插件提供的指令,就像在shell里一样。这些指令包括设置环境、文件操作、调用某个功能等等。7 }4 @$ Y! r, t
) r& ~1 G# l$ S- y* D# B
常用的命令有:q(退出)、q!(强制退出)、w(保存)、wq(保存并退出)。
- {5 b' h# H6 b2 g# s+ O' B' ^! b& A; Q6 P( M
可视模式& ^3 C- r2 F7 }. M+ e& J
( O9 j6 q$ D( {
在正常模式中按下v, V, +v,可以进入可视模式。
* \1 X& i) z- q" q& p  a: B! X. b7 f. R3 ?) k/ s
可视模式中的操作有点像拿鼠标进行操作,选择文本的时候有一种鼠标选择的即视感,有时候会很方便。7 H& ?  V/ S3 i! Y& E9 z4 |+ i

- w- M' R  E5 |. ?' a% ]打开文件、保存、关闭文件(vim命令模式下使用)
' w7 X# r! L6 R% ?& s1 V7 w3 j' a$ J" M. R" K6 u& f
命令的使用请先按ESC进入命令模式!4 ^2 _- F9 x/ `- @# Q/ C% X7 z* c
9 N9 _& X& A. h+ X) ~+ M
vim filename       //打开filename文件8 D. s- o9 _4 C3 z/ R- e

) Z7 k# S- K- F2 C% f:w vpser.net //保存至vpser.net文件0 v4 m3 w% c, y; C) S

- ], M5 I' B' U- p( x  ?. j:q          //退出编辑器,如果文件已修改请使用下面的命令5 _. ~  C) `1 |! _$ |( I
0 n# r$ @3 n. ]9 z  S& @( U1 G
:q!        //退出编辑器,且不保存  j- k4 J# z* k- }- v! P
7 O+ N, s1 w/ j+ v5 Q( D' {* i8 r
:w        //保存文件
9 x- O  q5 i- U  K  S4 h9 K# {7 X' X- [, o. I* t! A
:wq         //退出编辑器,且保存文件
( p$ S1 Y0 O7 g: p& s
, q+ b9 S* c* T' w# G:x          //退出编辑器,且保存文件% K. L2 V$ J/ }4 L/ h

# Y$ M. }4 |; t# w2 h) F修改:Insert键
9 |+ o; V1 v/ O) P, |+ h/ r) o5 K. H" Y, i. ]
插入文本或行(vim命令模式下使用,执行下面命令后将进入插入模式,按ESC键可退出插入模式)
* E- {1 \5 U* a+ Z& P% `& ?; F" g$ |) r4 m
a      //在当前光标位置的右边添加文本/ Z2 d5 {- {3 p; l0 z5 h
9 k% m0 I( ~4 K# i2 \% O: O* ^1 e( A
i       //在当前光标位置的左边添加文本1 X0 G& G9 l1 i8 Z. `

+ e) e" {& @: T7 N* A9 h; RA     //在当前行的末尾位置添加文本
9 `6 ?& w& a, p  Y$ Z) j
# \  O+ t$ L6 ?4 M8 G( d8 ~I      //在当前行的开始处添加文本(非空字符的行首)8 \* w  e% g$ ^% |; g! H
1 X' X9 x/ R  f9 G5 c
O     //在当前行的上面新建一行. m9 O! H7 |( I. e3 t2 S

& g. S3 Z. C1 B1 s0 so     //在当前行的下面新建一行
+ S; Q3 u* s( {7 j/ i0 r
: N" t- S- ]  H! V2 w) q( iR    //替换(覆盖)当前光标位置及后面的若干文本
! L( V6 q7 t* w, Y2 f4 g  i( j
( V. z  K( A" T' A4 Q. q) BJ    //合并光标所在行及下一行为一行(依然在命令模式)

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 19:30 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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