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

linux下vi与vim使用与区别

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
) B. i2 y. V- {
【1】VI与VIM区别7 O  F3 }9 V) |

& t) a; r1 e& S7 d它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。2 \2 J8 Q9 t5 G! r2 Z: Z1 m, y- L& J; e
3 a. ^, u5 x7 o/ l" e1 f
vim的这些优势主要体现在以下几个方面:
% f" ?2 r) w/ e  M7 l
, p( ?. W2 a  S4 ?) k1、多级撤消 ' s, {$ ~# @2 Z! L; w5 t
我们知道在vi里,按 u只能撤消上次命令,而在vim里可以无限制的撤消。) f* }2 X! ]' H
' C3 C+ b4 |5 z/ @; N0 ?2 a0 l% ^
2、易用性/ Z+ E+ ~- k# G

* ]( \0 V. o$ L. yvi只能运行于unix中,而vim不仅可以运行于unix,windows ,mac等多操作平台。
7 ^( F, {: P4 T$ f: ~! y/ w, ]' I& ]& z2 I: E* `: Y
3、语法加亮 ) B! b) A5 ?3 T4 m  b( h" c
vim可以用不同的颜色来加亮你的代码。
. r! L/ v: f) d6 A; E* m- n( h4 E, `5 n2 S; A9 G- ]( x3 O4 \) H# P
4、可视化操作 7 t4 V( g% }; q% t
就是说vim不仅可以在终端运行,也可以运行于x window、 mac os、 windows。" Y, E7 n( R5 ^/ {

! m! q: c( o8 m' {* ~5、对vi的完全兼容 " U3 T  e9 |  ^  ~
某些情况下,你可以把vim当成vi来使用。
- G; v8 q/ \2 C& N5 {/ \8 [7 [  s# o: N0 E% _+ Z& Y
vi和vim都是Linux中的编辑器,不同的是vim比较高级,可以视为vi的升级版本。vi使用于文本编辑,但是vim更适用于coding。9 o! N% d# ^$ d6 Q. H* ?' R" ^

% ?. C' J6 Z1 W, |, ~【2】VI模式6 l1 Z' X6 H+ d) w; x

5 A: q- {" s: o% wvi有3个模式:命令行模式 (command mode/一般模式)、文本输入模式 (input mode/编辑模式)、末行模式 (last line mode/指令列命令模式)。
4 Y0 }* d5 ]/ n9 i4 [  O) m7 T2 s5 F1 L/ F! r0 D
命令行模式 (command mode/一般模式); n  S$ a1 _1 S: C& ~4 \

) D* ?6 p( \7 L  \: E4 s  任何时候,不管用户处于何种模式,只要按一下“ESC”键,即可使Vi进入命令行模式;我们在shell环境(提示符为$)下输入启动Vi命令,进入编辑器时,也是处于该模式下。
' D1 M; k: P5 q' W: N9 x9 {  在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的Vi命令,则Vi在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是Vi的合法命令,Vi会响铃报警。. x' r, R3 j6 `7 @8 W: p
$ J' Z5 Y# C! q
文本输入模式 (input mode/编辑模式)
& l' G" Q# B, g$ M
( B) x3 X3 Q  [8 W1 S1 f& t# t3 e/ y  在命令模式下输入插入命令i(insert)、附加命令a (append)、打开命令o(open)、修改命令c(change)、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被Vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按”ESC”键即可。
" e# Y) W; ]& L3 M5 |
# l  a' s: J4 P末行模式 (last line mode/指令列命令模式)0 P: f' `8 B/ S  @
0 ]. Y1 I) W7 m/ x& i, x# g2 p
  末行模式也称ex转义模式。
" b# x( {) z7 ]( F+ L4 d* i  Vi和Ex编辑器的功能是相同的,二者主要区别是用户界面。在Vi中,命令通常是单个键,例如i、a、o等;而在Ex中,命令是以按回车键结束的正文行。Vi有一个专门的“转义”命令,可访问很多面向行的Ex命令。 6 m/ a4 ?& `, x9 B2 M
  在命令模式下,用户按“:”键即可进入末行模式下,此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行完后,Vi自动回到命令模式。, I, n+ `; ]5 Z7 i1 q
( n! ~. ~& b. @, [
【3】VIM模式$ w! x+ i( C! o' h, o

/ h$ U, X$ w* U7 j1 ]vim一共有4个模式:
* G1 z9 W& E+ A; f. ?0 O0 Y% L  d: i3 Y# c5 ~
正常模式 (Normal-mode)
# l+ p1 O" v0 {3 x( P$ R+ L! Q) n+ }' J9 N$ ?
插入模式 (Insert-mode)( I* [7 H+ e4 u# R/ Y

) w/ p, }; m3 D, c! \0 G' {# g; r- x* K0 E命令模式 (Command-mode)8 u/ ?5 ^7 R: |; c4 h+ T

, w, H4 m; K7 W- ]9 H( g) i可视模式 (Visual-mode)
% u4 L/ w* X! ?2 A5 }4 F: R6 e& w! a
正常模式& e3 ~3 M% N0 N; y$ D3 e* Z
% n# O. F0 K3 y# r
启动vim后默认处于正常模式。不论位于什么模式,按下键(有时需要按两下)都会进入正常模式。
- p  \# ]! C  n* G9 i7 }2 @+ s( m
* X  l- X* n3 L2 d7 ]4 t( _7 @插入模式' m) ]5 S" E0 k) \, r) p0 T* G
  x, _% y7 v% z- r/ b
在正常模式中按下i, I, a, A等键,会进入插入模式。
/ g* [/ ?% ]4 S! |+ K8 a3 c- C2 `! Y- ~) ]) \# P
现在只用记住按i键会进行插入模式。在插入模式中,击键时会写入相应的字符。, d* D- d/ }# I# A; s- C

4 o, D9 A7 i  n8 Y+ T: X! l命令模式
( ~5 w9 D" f( h) v7 H6 ^2 Z# l( w6 Q+ o- Y) E8 ~! }! I6 e: a
在正常模式中,按下:(英文冒号)键,会进入命令模式。
3 [( S# ^, H0 y5 H8 }
% o7 _5 G. [! O$ c6 g在命令模式中可以执行一些输入并执行一些vim或插件提供的指令,就像在shell里一样。这些指令包括设置环境、文件操作、调用某个功能等等。& ^2 z% c) M  `9 u: d

6 _  Q; H0 r9 D. Z" b. B: ~; t8 W常用的命令有:q(退出)、q!(强制退出)、w(保存)、wq(保存并退出)。8 ?/ Q; N) S3 w4 l

8 O: p' f, ]; ~; w% V2 J可视模式4 ^. k# P- W7 ]

. R+ K5 b) {( q+ v4 L+ E! H: l. A在正常模式中按下v, V, +v,可以进入可视模式。0 V; g3 U8 w' s* C; f

/ E& D, l" _' h可视模式中的操作有点像拿鼠标进行操作,选择文本的时候有一种鼠标选择的即视感,有时候会很方便。
% |1 b% \7 W+ ~9 Q  N6 P( M( i# u$ S0 E6 |) k
打开文件、保存、关闭文件(vim命令模式下使用)& }; u  u+ Q  a! G

; Z3 j+ E# C$ @% R; V+ i1 _/ A命令的使用请先按ESC进入命令模式!# |% E; u/ c' C' ^8 t

' Y3 N% n' K: Y1 }vim filename       //打开filename文件
7 I8 g1 ~/ z# b* K
# k: s7 A5 w% _2 K: W  Q, q:w vpser.net //保存至vpser.net文件' c" L# ]  C# g2 Y' Q# [

2 N: k$ }9 t0 ?1 s7 C( P& i:q          //退出编辑器,如果文件已修改请使用下面的命令& i- L4 G# ~$ `/ \) K  l$ j, P
  J( ?( O) _) t
:q!        //退出编辑器,且不保存
  o; g- o: n9 e! Y- X- K9 O, d# v9 G" i; V4 q- C$ U+ O
:w        //保存文件$ i7 A3 s" u4 d& m/ `

1 y4 H9 k- t8 j4 }3 j* ^6 f: n:wq         //退出编辑器,且保存文件
4 ]+ }# l& B3 J, f% Z" K
1 R0 W4 L+ I2 ]! ^: C0 B:x          //退出编辑器,且保存文件$ q% A& X# e/ o0 }: y. v
% c& q; `& [/ o
修改:Insert键
; t3 N$ Q) g5 Y# k' _" D
2 d8 j; x2 \' o4 N' [# r插入文本或行(vim命令模式下使用,执行下面命令后将进入插入模式,按ESC键可退出插入模式)3 V2 X! h( d9 ^

+ O! A5 D1 W0 C; B3 ]a      //在当前光标位置的右边添加文本( i$ b8 w- `, I& T

1 V# T' d- b8 o; Ri       //在当前光标位置的左边添加文本
8 G3 u/ [9 G; b! w" P' S8 s9 u+ |6 i, D: C/ }$ @7 ]' {/ u
A     //在当前行的末尾位置添加文本, C( B5 }1 K! T: D% c/ @& W
5 z% y# ~2 X( V+ E+ `8 t' \
I      //在当前行的开始处添加文本(非空字符的行首)% U) v4 w9 e- l' Y+ H: x

- m! g. S6 M# K- T5 zO     //在当前行的上面新建一行
# A- D' N3 @) r
9 B! Z! t/ ^8 U5 Y7 B1 Fo     //在当前行的下面新建一行6 \1 S  f, }$ ^. ?* r; m- h

# @- {4 Q  W# S* R) a. ER    //替换(覆盖)当前光标位置及后面的若干文本
. k1 }/ r, T6 ?$ X9 b3 m8 v
) k3 M/ z+ u8 O$ d1 UJ    //合并光标所在行及下一行为一行(依然在命令模式)

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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