找回密码
 注册
查看: 4521|回复: 1

linux VIM基本命令

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2018-9-20 15:51:05 | 显示全部楼层 |阅读模式
linux VIM命令:
7 K) G4 S: h6 M) Kvim                   在命令行中输入vim,进入vim编辑器; I# v1 f2 r9 L* c. i8 S
Esc                   退出i(插入)命令进行其他命令使用/ {' `$ B7 D$ s5 a
:sh                   进入shell命令行,运行完命令后ctrl+d退出又一次进入vim编辑继续编辑在shell命令下,8 N' u" @/ P# c; o# S
1 V, I, R7 P* ^% p* `3 Q9 t
运行ctral+l完毕清屏- V) S2 L; E/ c8 P+ }+ ]8 `5 i& V0 e
:set number或者:set nu             使编辑中的文件显示行号
# ~# L' O- R- x2 q- I( i( K5 V:set nonumber或者:set nonu         与上一条命令相反,不显示行号
( N% y5 P! A8 V: \& s4 f! g  n:help i                   查看插入命令帮助
% Y  E# R  E6 o8 L8 i/ q/Fedora                   查找Fedora字符
+ _& }* ~5 w) F7 o# ]/ ~- `:s /Fedora/Redhat         将Fedora字符替换为Redhat(仅仅替换在光标所在的行)
( c4 M/ T6 @+ G) R3 `:%s/ro../r                将ro..替换成r。.表示随意字符
. B$ ~# M8 L: D8 `6 `5 r:1,.s/redhat/fedora       .号表示当前行,即光标所在行 #将第1行到当前行(.)第一次出现的redhat字符取代为fedora% Z2 |, G1 K4 h9 b" d, L7 \
:1,.s/redhat/fedora/g     将第1行到当前行(.)全部出现的redhat字符取代为fedora,g
! H) f/ |% H; @8 N5 U7 P# n4 {& j) Y全局标志' F0 G$ P6 U* X% a7 v- h) ?
:1,$s/redhat/fedora/g     $表示最后一行#将第1行到最后一行全部出现的redhat字符取代为fedora
+ ~' n0 k2 R) O:%s/redhat/fedora/g       同上一个命令
! ^9 f( J* t7 y, Y, l. Q4 j, e; c" c:%s/\/fedora/g            将第1行到最后一行全部出现的redhat字取代为fedora#字,而不是字符
' f9 w3 d5 I6 c  [7 L:%s/ro/\r&/gc             %表示全文,s表示替换。ro替换为换行符。&表示之前要替换的字符ro。g表示一直替换不加g仅仅替换一个,c表示确认是否替换。
% q1 E4 ~# Z; \8 H6 w整句话意思是将ro替换成换行符后跟ro
5 u4 ?( Y* r% x5 }* N:f                   #显示文件内容,状态等等#同ctrl+g命令4 E9 b5 a7 m2 w- z8 K4 N1 O7 P
vi filename 表示编辑filename文件。假设不存在则创建该文件,假设在进入vi时没有指定文件名称能够进入后用":n filename"来指定文件名称。
5 L9 l" Z. [! k. ?4 ]
% z5 V9 Y: P0 l3 I+ u, H; y. y! O: `4 e+ y
:e!        放弃全部改动,不包括已保存的
' b4 v' n% `8 K0 J:e         文件名称  打开指定文件. _- _# y/ I8 n& q9 x* a' ^( x
D          删除当前行光标后的全部字符$ E0 k. q! K0 P1 V+ h/ j# E
y与y$同样  表示复制本行光标開始到行末的字符( q% C3 I7 T3 b) H9 k
:w! 文件名称  将当前显示文本全部覆盖已存在的文件
1 `" I/ {! Y$ G7 }; D, u:n,mw! 文件名称  将当前显示文本的第n到第m行强制写入指定文件
, A7 R( f9 S: I7 p; sw    光标跳到下个单词的首
! C. ]+ Y, Y# @: G$ `0 e8 w! |5 Ce    光标依次跳到单词末尾 9 B& n* ~# z6 I# O  O
替换文本$ n4 G2 P) K. a( {
cc   替换当前行# s2 k6 q! S% n4 ~: U( u
C与c$    替换当前行中从光标处到航模的全部字符
! @' I- W( T8 l  Ucw       假设光标在单词头部或中间,从光标处替换到单词尾部。假设光标在单词尾部。则替换尾字母
9 g( g7 N* i+ vce       假设光标在单词头部或中间。从光标处替换到单词尾部,假设光标在单词尾部,则替换从尾字母到下一个单词尾部' B# @5 A$ ~  _, x
cb       假设光标在单词中间则从光标处替换到单词头部,假设光标在单词头部。则替换之前一个单词% j* h6 C( e8 ?# h

$ S/ f  f) \- X* G- M" E缓冲区
' \+ j+ z0 d8 ^! Y5 A缓冲区分为数字缓冲区和字母缓冲区4 K' _- P! w+ g+ c# m8 n
数字缓冲区:
& y8 T5 [- }) e/ _$ y, R每一次dd删除操作都把删除的内容存入一个数字缓冲区,1号缓冲区永远是近期一次的删除内容。每次删除操作会把1号缓冲区的内容存入2号缓冲区。2号存入3号中。依次类推。调用能够用命令"np(n代表1-9中的数字)
- i1 I, }  S# `4 k字母缓冲区:
- D. K' v1 }. I8 K字母缓冲区有26个,分别为a-z0 K! A+ y6 E0 j5 `/ y, ~! p
命令"add表示删除本行。将本行存入a缓冲区。
$ r! ~2 }5 y/ j9 W% o8 ]4 a' v- q' t; i) m. P
调用能够用命令"ap+ J! }# m8 M4 q! [9 h/ W
" O& B$ ]! u9 N4 V/ H
光标控制命令
1 n/ }" u7 B% p8 w命令                   光标移动
: R. v, F2 ^8 S( s0 t:向上               能够反复输入上一个命令
. Y  E& w0 D6 I' u! Fh                   向左移一个字符4 l+ Y- q" Z) B& ^
j                   向下移一行8 ~0 j; H- }1 R
nj                  向下移动n行' z' A0 n! B5 [7 J$ M2 Q2 M
k                   向上移一行* S6 j4 `! k. P: Q: W
l                   向右移一个字符% p+ I& ^! J! C, r
gg或:1              移动到文件第一行6 m* [1 t0 o% ]. [5 Y, m% K
G                   移到文件的最后一行" [1 B! m, P9 t5 P6 `+ k2 G( ~0 K
w                   移到下一个字的开头
: U% C- a: k/ \4 X2 o) QW                   移到下一个字的开头。忽略标点符号, O4 |$ D2 ~0 K1 [
e                   移到下一个字的结尾6 u3 i5 ]( J& o5 ^; k
E                   移到下一个字的结尾。忽略标点符号2 [3 z. E* h* \. j+ w* p
b                   移到当前字或前一个字的开头
2 s! a$ x' l4 O3 p- c' eB                   移到前一个字的开头,忽略标点符号1 w- U/ Y+ y  \9 g/ u
L                   移到屏幕的最后一行+ D: r$ Z8 W# M2 F
M                   移到屏幕的中间一行
2 i9 l) r! Y6 O9 h; U2 kH                   移到屏幕的第一行
9 G8 v6 h4 b# |: g8 K(                       移到句子的开头
, [/ T9 d& p5 e$ Z: d)                       移到句子的结尾
) k0 S  J3 h* C0 L{                       移到段落的开头
( K5 {! j" }! V$ N- T  y}                       移到下一个段落的开头2 V' J. `- E3 V1 ]5 w$ J
0(数字), |                移到当前行的第一列. ~" Z$ f9 w0 _6 I* |; h
^                       移到当前行的第一个非空字符
( P  v0 Y) D; V- x1 w$ w$                       移到当前行的最后一个字符
: E( R; `! ]5 a3 ]# P+, Enter             移到下一行的第一个字符6 w! E1 B# z! j, G
-                       移到前一行的第一个非空字符! B+ h7 }3 B9 i3 e' A/ A  Q
在 vi 中加入文本4 O0 Z/ z- A5 h
命令                   插入动作6 J* E5 R% `' f1 K: l
a                   在光标后插入文本
/ b& I( s6 ^" l3 ]8 n" O* G& g6 G/ LA                   在当前行尾插入文本
9 O) R% V5 P' V! _! D* H9 Xi                   在光标前插入文本
8 [4 k  |% o: O1 g9 |$ [I                   在当前行前插入文本
" e5 ~" t1 Z0 v/ a" V$ wo                   在当前行的下边插入新行% k: E( c# N2 f  }
O                   在当前行的上边插入新行; l9 J% N8 ~4 J
s                   删除光标所在处字符,并进入插入模式
# J( j$ _' P; aS                   删除光标所在的行。并进入插入模式
1 x3 Y# w' n8 x1 I, M" N:r file             读入文件 file 内容,并插在当前行后
- M9 T4 A- P0 |6 _% o  O& a:nr file            读入文件 file 内容,并插在第 n 行后' K7 ?: x* S6 ]7 Y3 C
Esc                 回到命令模式
6 o$ H* @4 E7 [在 vi 中删除文本6 [# `* W8 u* t. l) P" @7 w" @" |( {, [; ~
命令                   删除操作
. Y$ A. V( F$ V0 B8 @3 c( F! B# tx                   删除光标处的字符,向后删除
: E+ ]0 g, A! ?" b# a( Xnx                  删除本行光标開始之后的n个字符,不包括其他行4 S5 p, [/ r) k+ |) l
X                   删除光标前的单词,向前删除
, m1 e$ l  a$ i$ idl                  删除一个字符& |- G" a$ ?6 q2 w$ a+ H
dw                  删至下一个字的开头
+ p& c2 p( X1 H, J1 s$ ddaw                 删除当前单词
' n+ S6 f& D1 y2 E( pdnw或ndw            删除之后n个单词# ]& ~3 ]& ]- Z8 Q
dap                 删除一个段落
! g' B% c! D. ?1 x- g* h, idG                  删除该光标行及之后直到文件结束) S) ~3 k' w0 q4 x- ?: B
dd                  删除整行
3 o7 B0 x) Z" w' {ndd                 删除光标下n行* y) w/ `/ u. Z% l8 @3 @! q, a. w
db                  删除光标前面的字
( Y' K- R1 I9 L! Q( V! w$ Y" u; B:n,md               删除n行到m行
& {* x  D+ M' d& k8 sd, d$               从光标处删除到行尾' B9 r  B* D4 l0 {' S" Z% r
d$                  从光标处删除到行尾: _5 E! @* D. }: m6 N
d,d^                从光标处删除到行首
: ^) y% J  C) b$ V6 ~d^                  从光标处删除到行首
" J  m4 @2 g  ?改动 vi 文本" L( P0 d7 T2 p2 E' g# E
每一个命令前面的数字表示该命令反复的次数
- g! g) N  E9 _. ^7 V/ x命令                               替换操作* P9 U5 z6 M* P0 _; W
g~~                           光标所在行字母大写和小写反转" q) D9 k5 L' L& w. U4 u' b5 n
guu                           光标所在行字母变小写
0 T7 q2 _$ i) \7 n. s' FgUU                           光标所在行字母变大写* f3 k) M! D5 |' b
gUaw                          把当前单词转换成大写
: q& {7 \1 |+ e  g( ~8 ^- |0 ygUap                          把当前段落转换成大写
% M: q9 C6 }5 j( R! w* K7 B( V+ brchar                         用 char 替换当前字符& F9 K5 G2 @% _0 {
R text escape                 用 text 替换当前字符直到按下 Esc 键
1 g$ N, ~) A* |6 h" istext escape                  用 text 取代当前字符- E2 r! D7 q- q' N3 g7 r
S 或 cctext escape            用 text 取代整行) ]. i' c/ `  X  c) O
cwtext escape                 将当前字改为 text/ @/ r, F/ k4 B: V/ ?% `7 \2 f
Ctext escape                  将当前行余下的改为 text
& d: M- j8 N4 k- a' @+ B( {* LcG escape                     改动至文件的末尾
7 z/ Z7 o  a- G# K在 vi 中查找与替换2 G5 E5 I+ e! N: Z" @. {; g8 G
命令                               查找与替换操作
# I& x6 A9 C0 B' ~$ lf字符                         在本行查找下一个字符. i1 W1 B: h' d$ V0 k( c: e
;                             移动到下一个用f查找的字符,与上面的f配合使用6 h2 y- n, W* ^3 `) H' k$ e/ ~
,                             当移动到上一个f查找的字符。与;相反
9 ^4 B4 I: h4 ~! ]*                             全文查找移动到和光标当前的单词一样的下一个单词# X$ A1 t9 I& k; S4 N3 `
/text                         在文件里向前查找 text
7 S- N( D2 `" k5 g. y' p?text                         在文件里向后查找 text. [6 r, T$ a# {1 S; G* l
n                             在同一方向反复查找; Y7 g+ G- t3 P4 v; o: M
N                             在相反方向反复查找
9 ]% b# P) _+ D$ [8 W4 T- T:set ic                       查找时忽略大写和小写5 e* ^# w! J) B! B
:set noic                     查找时对大写和小写敏感- q  \- k6 \6 e3 f
:ranges/pat1/pat2/g           用 newtext 替换 oldtext  t" I2 g4 _6 [. B" ]
:m,ns/oldtext/newtext         在 m 行通过 n。用 newtext 替换 oldtext9 g* L7 e& }. v" |& y" d2 r
&                                  反复最后的 :s 命令
$ X+ X) `5 _  J:g/text1/s/text2/text3        查找包括 text1 的行。用 text3 替换 text2) a0 M! T% U/ h  z( A7 \" j( H7 Q
:g/text/command               在全部包括 text 的行运行 command 所表示的命令' V" c; }7 k# V
:v/text/command               在全部不包括 text 的行运行 command 所表示的命令" p* n: X# \8 r, J& b+ b
在 vi 中复制文本) T  ^; S' p& {5 M/ j
命令                      复制操作
9 A6 _+ A7 M: zyy                    将当前行的内容放入暂时缓冲区
! k! P! C+ [4 D& unyy                   将 n 行的内容放入暂时缓冲区
& ^! Q$ t# _  F+ ^  xp                     将暂时缓冲区中的文本放入光标后9 x; R' [( N, |8 c2 v' z
P                     将暂时缓冲区中的文本放入光标前
1 k, r& N& C/ l- i& d6 T( z( p0 Rnp                    将暂时缓冲区中的文本放入光标后n次
* Y: n% L  H' FnP                    将暂时缓冲区中的文本放入光标前n次8 W) n2 b% ^6 K- R1 v
在 vi 中撤消与反复
4 F: A) V3 k; c( b! c  S命令               撤消操作
; ^0 T1 v4 O- Y& bu               撤消上一步操作
6 R5 {+ e! _- S) UU               撤消当前行的全部改动
2 G8 h( T/ K; |! ?  \+ qctrl+r          反复键入,和撤销相反
- l5 g4 V$ n2 ]7 z5 w.                  反复最后一次改动
8 y, g/ [8 j# b" K# z5 _,                  以相反的方向反复前面的 f、F、t 或 T 查找命令
" N4 }4 j- |9 w;                  反复前面的 f、F、t 或 T 查找命令1 s" ]! V& o" J' W# z) W5 A
n               反复前面的 / 或 ? 查找命令$ `% w% }8 C  s; V+ i
N               以相反方向反复前面的 / 或 ? 命令
3 ?0 Y' L( X6 c0 \保存文本和退出 vi
5 V2 R4 C! d4 D命令                      保存和/或退出操作
7 w6 G% q4 a& w$ k% d4 D:w                    保存文件但不退出 vi
! i* `& y& t7 j2 s7 I5 ], ?:w file               将改动保存在 file 中但不退出 vi2 [7 c5 e1 }1 Y: o+ D. ~- O1 |
:wq 或 ZZ 或 :x         保存文件并退出 vi
% @3 ^) ]7 K5 E5 o5 q:q!                   不保存文件,退出 vi( N( c4 r) t3 [/ E
:e!                   放弃全部改动,从上次保存文件開始再编辑
; I) U+ T) u9 g$ a8 c3 A:set go=              go表示gui option的缩写。等于空就是什么都没有
# Z% T" }, m( `  h3 |vim file1 file2...filen能够打开多个文件(在shell中输入的), J2 e0 w0 U8 N( E
vim + filename                   进行文件最后一行进行编辑6 P9 M2 r' w# g+ l! A3 V6 v* F  h
vim +n filename                  进入文件第n行进行编辑  ]! T, z; o$ e. d5 p5 d
:e xx.txt             打开某文件
8 i4 j( C$ v8 L4 F) @; y/ \1 N:open file            打开某文件,同上* }  `9 V1 s$ T7 n
:tabnew D:\text.txt 新选项卡中打开某文件,输入:tabnew D:\t再按tab,会自己主动补全text.txt。假设不正确再按几次tab,直到正确为止。( y4 S( M2 y6 a6 A) d
:bn                   文件切换,下一个文件1 g3 n+ {# ]) g1 M1 m
:bp                   文件切换。上一个文件$ ^* B4 W& c6 b% Y2 S. p
ctrl+6                文件切换,下一个文件; Z" I% T& L% D: c" [9 o) ?: `; f
:split                多个文件上下排列,能够通过:q退出当前窗体
2 f  D! j. h2 M8 V:vsplit               多个文件左右排列7 u; x3 q1 Z2 q7 `' e
vi 中的选项
1 i3 k. [9 |8 ~% H选项                      作用
" P" f6 z' ?9 ~:set all              打印全部选项
1 G0 d8 _8 z7 s# Q3 i:set nooption         关闭 option 选项6 D- J( g$ Z, @3 U
:set nu               每行前打印行号
+ X4 _- t& U. u1 f, @6 o:set showmode         显示是输入模式还是替换模式
( Z0 ?$ R- @  ?:set autoindent          继承前一行的缩进方式。特别适用于多行凝视
* F: ?" w; c  f+ _:set smartindent        为C程序提供自己主动缩进" _1 U  T. [! `: l6 c" }1 A
:set list             显示制表符(^I)和行尾符号
4 _9 M" J% W4 u" S% f:set ts=8             为文本输入设置 tab stops) y6 F5 O4 c6 N; m; ~" w" V
:set window=n         设置文本窗体显示 n 行" @1 M2 h& c/ S: g
vi 的状态
5 C( _/ N( X, q选项                   作用, [" \0 v- L  J5 T6 ?! h# ]1 h
ctrl+g             显示文件名称、当前的行号、文件的总行数和文件位置的百分比9 a4 C/ |6 l" E) H/ q0 o
:l                 使用字母 "l" 来显示很多的特殊字符,如制表符和换行符1 H3 o2 @( p1 j
在文本中定位段落和放置标记
9 n4 j7 C( V+ s5 U5 c选项                      作用
( F# I2 s5 R7 t5 m) a% v  V{                         在第一列插入 { 来定义一个段落
" m5 K+ W8 J1 K6 X1 n[[                         回到段落的开头处! ]$ x, j& S5 p1 U. m6 C
]]                         向前移到下一个段落的开头处
" o: E5 c. w4 P$ r9 C& B1 F% c: _8 y在 vi 中连接行) f; C5 Z- w5 ^* r$ b1 o
选项                      作用
# U: R+ a; l+ e; S3 sJ                     将下一行连接到当前行的末尾2 q/ E. `; ^/ m- X) m
nJ                    连接后面 n 行- G1 q4 x8 v; B" s) h2 {
光标放置与屏幕调整( z( j4 ~4 A! x3 R6 T
选项                      作用/ ~' p9 Z* M+ n: ]
H                     将光标移动到屏幕的顶行
4 j2 K: W+ w/ F7 `& Z% \- |nH                    将光标移动到屏幕顶行下的第 n 行/ \+ M9 x+ \) N2 i7 m
M                     将光标移动到屏幕的中间0 [+ C+ g4 o0 b* b
L                     将光标移动到屏幕的底行: i. w, d9 _* _9 w  C: {. D" {6 V
nL                    将光标移动到屏幕底行上的第 n 行7 B- e) s3 d% w  w' o) F3 O
ctrl+e                将屏幕下滚一行: K9 M+ p" R' d. x1 M" K& A( Y
ctrl+u                将屏幕上滚半页
. z- Z) n( {8 V  w. i/ Mctrl+d                将屏幕下滚半页+ C' n% H  n5 x( Y# L! Z, w
ctrl+b                将屏幕上滚一页
( p" r$ x4 \! H! bctrl+f                将屏幕下滚一页5 M% [7 h+ D( A' k
ctrl+o                退出插入模式进入普通模式,操作后又进入插入模式
; H5 @  i/ O- Lctrl+p                编辑模式下自己主动补全
4 E( @  z6 G# S4 {zz                    重绘屏幕,使当前行移动是屏幕正中间+ E% |& Q- B$ `( ?  h. O
z-return              将当前行置为屏幕的顶行* a6 v# S( C& h8 _; ?9 g/ l1 E
nz-return             将当前行下的第 n 行置为屏幕的顶行* n4 ]+ r9 ~6 t3 Q  R. M
z.                    将当前行置为屏幕的中央+ T0 f7 C8 H0 {1 R4 B
nz.                   将当前行上的第 n 行置为屏幕的中央) G; g9 E. D. a$ E$ {- o
z-                    将当前行置为屏幕的底行
2 y* b& d' H) c0 I4 S3 Tnz-                   将当前行上的第 n 行置为屏幕的底行6 u3 Q0 p$ O. k3 d" d: I
:syntax on                语法高亮6 c' b! ]& R4 M/ B  L
:syntax enable            语法高亮
4 Q% Q* z5 `* A! c7 w3 J+ H:syntax clear             取消高亮& t% ^: F* P5 H) a: J
:color                color后加空格然后按table来切换配色方案/ q2 C+ w5 n* ]2 g- T
:set hls              高亮查找的单词" Y' p: W$ A. G0 P

& j. j& o8 x+ ?. H: n$ l
) R  b' ^8 ~! B! v4 _qa(q表示開始录制宏,宏的名字为a)
  w, s  M& ~* w# V/ @再记录操作% C  @' Y9 g% [/ h
最好按q(表示宏录制结束)% J+ W6 d, U$ u  C
使用:@a,宏运行一次。
7 O) u: X' q/ f
& S& P# d9 D; i6@a。表示运行6次宏a。1 C% t5 f# ^# ^

( l" q) @: n7 o5 P5 T% P' ]. svi 中的 shell 转义命令
! M) _8 P3 c& b选项                      作用8 S7 ^- F* l+ H. ~2 X
:!command             运行 shell 的 command 命令,如 :!ls3 [, ~2 B1 j8 V% z/ D- a9 h4 _
:!!                         运行前一个 shell 命令" o1 `+ S# \  v, ~+ u4 I
:r!command            读取 command 命令的输入并插入。如 :r!ls 会先运行 ls。然后读入内容  n, h7 }# c2 D: @. a% l$ y
:w!command            将当前已编辑文件作为 command 命令的标准输入并运行 command 命令。如 :w!grep all0 `- W6 q# ?' L9 Z( ~; J0 L
:cd directory         将当前工作文件夹更改为 directory 所表示的文件夹' C7 x2 T4 o0 O8 U
:sh                   将启动一个子 shell。使用 ^d(ctrl+d) 返回 vi8 T+ |. j5 A6 E0 ?# Z0 p% \3 W; I
:so file              在 shell 程序 file 中读入和运行命令
& g2 o' ?9 `# \) M, g' ~: lvi 中的宏与缩写2 M  i9 \$ r/ Q
(避免使用控制键和符号。不要使用字符 K、V、g、q、v、*、= 和功能键)0 a( y1 \7 b6 q
选项                      作用
. n. b* I% F% O' s7 V# s8 a' }:map key command_seq 定义一个键来运行 command_seq,如 :map e ea。不管什么时候都能够 e 移到一个字的末尾来追加文本+ y  `! z8 C; r. c5 Y) T& `- d9 [' I
:map                  在状态行显示全部已定义的宏5 s+ C0 [8 P* R" E0 c0 R
:umap key             删除该键的宏5 G: q: r! v0 U
:ab string1 string2   定义一个缩写,使得当插入 string1 时,用 string2 替换 string1。当要插入文本时,键入 string1 然后按 Esc 键,系统就插入了 string2
. F$ m7 T! Y$ K) t" O# b9 L:ab                   显示全部缩写5 W- @. J. q9 s9 D1 H
:una string           取消 string 的缩写
% ]: a, F0 ?. U7 M8 ?- g5 f! y在 vi 中缩进文本
4 A8 K9 \; r' c" N& F选项                     作用
: Y0 f: v) N4 F" Wctrl+i或 tab       插入文本时。插入移动的宽度。移动宽度是事先定义好的: P& C6 ?0 Y7 G( i/ m
:set ai            打开自己主动缩进
. ]. H  \# r& t' o! a9 x:set sw=n          将移动宽度设置为 n 个字符2 D/ O* D1 O+ a3 x, u( |+ x' w9 g
>>                 使当前行向右移动一个宽度! D) C  p8 O% r! g
n>>                使 n 行都向右移动一个宽度,比如 3>> 就将接下来的三行每行都向右移动一个移动宽度。假设省略n表示使当前行向右移动一个宽度。
3 X* r) j8 K8 Q# ^, b2 i
  _& f7 P+ U, ^6 V6 |
/ }7 I' |  `6 r( J7 X# h& ~>G                 使当前行至文档结尾都向右移动一个宽度/ f' f* @( i: i9 S# n8 \
: u9 l  t6 k5 A3 C: J, C! B; N8 i
可视模式
5 e$ w0 {$ a; H为了便于选取文本。VIM 引入了可视(Visual)模式。
9 C4 Y8 r1 i: w% j( O
: b6 o" \* F) x" C' l+ O0 H要选取一段文本,首先将光标移到段首。在普通模式下按 v 进入可视模式。然后把光标移到段末选中内容(移到行首^,行末$)。须要注意。光标所在字符是包括在选区中的。
! T9 h" }4 U, ~2 d7 Z6 z+ x
4 @" ^/ B4 h& [2 R. L这时能够对所选的文本进行一些操作,经常使用的(可视模式)命令有:) q  C+ H9 c" F( @- ]
x或d     剪切(即删除,同一时候所选的文本进入剪贴板) $ ?+ a; @- i0 E) b0 E, l
y          复制 9 o' {$ T) O8 [! S
r字符     全部字符替换为新字符
0 I7 {! ~$ G7 |8 A; lu U ~    各自是全部字母变小写、变大写、反转大写和小写
& A% A5 U6 M# ]当输入了命令以后。VIM 将回到普通模式,这时能够按 p 或 P 进行粘贴。普通模式下有关复制和粘贴的命令:+ t. X  D$ |7 d5 }
v         进入可视模式 4 T+ b' ~$ E5 a: N2 L5 _
p或P    在当前位置粘贴剪贴板的内容,p 粘在光标所在字符后面,P 粘在前面
9 t* |  G+ S# l不得不承认,尽管引入了可视模式。复制和粘贴在 VIM 中仍然是比較麻烦的操作,这或许是 VIM 唯一的缺点。此外,VIM 还引入了选择(Select)模式。跟可视模式相似。

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2018-9-20 21:36:32 | 显示全部楼层
常用的几个功能:! y3 w, j2 d: T1 C/ G5 H+ e3 H( s
vim 的编辑模式:   i字母  写入
; a+ V: O: l2 U. ~8 Y:wq  保存退出  u; k  j* g0 `! z" x
%s#字符一#字符二#g   替换字符或者数字* P% c1 M0 P5 ], g8 B! u
6 t; Q  s8 o% F( V8 e
yy 复制行4 V. B/ y" V# R  F+ {& B. V
dd 删除行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 01:56 , Processed in 0.021573 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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