您的位置:首页 > 运维架构 > Linux

我的linux学习5 vi,vim的学习

2013-03-28 21:54 337 查看
1、一般模式

移动

h或方向左 -------------------
左移动


j或方向下--------------------
下移动


k或方向上------------------
上移动


l或方向右 -------------------
右移动


crtl+f
向下移动一页(常用)


ctrl+b
向上移动一页(常用)


crtl+d
向下移动半页


crtl+u
向上移动半页


+
光标移动到非空格符的下一行


-
光标移动到非空格符的上一行


n<space>
移动到这一行的第n个字符


0
移动到这一行的头端(常用)


$
移动到这一行的末端(常用)


G移动到这个文件的最后一行(常用)

nG 移动到这个文件的第n行,常与:set
nu一起用


gg
移动到这个文件的第一行,同1G(常用)


n<Enter>
光标向下移动n行(常用)


搜索

/word
从光标位置开始,向下搜索一个名为word的字符串
(常用)

?word
从光标位置开始,向上搜索一个名为word的字符串
(常用)

n
表示重复前一个搜索动作
(常用)

N
表示反向重复前一个搜索动作
(常用)

搜索替换

:n1,n2s/word1/word2/g
表示在n1和n2行之间搜索到word1并用word2替换
(常用)

:1,$s/word1/word2/g表示在第一行和最后一行之间搜索到word1并用word2替换(常用)

:1,$s/word1/word2/gc表示在第一行和最后一行之间搜索到word1并用word2替换,但是在替换的时候给用户提示(常用)

删除,复制,粘贴

x
在一行中,向后删除一个字符,相当与[Del]
(常用)

X
在一行中,向前删除一个字符,相当与[Backspace]
(常用)

nx
连续向后删除n个字符


dd
删除光标所在的那一行(常用)


ndd
删除光标所在的向下n行
(常用)

d1G
删除光标所在位置到第一行的所有数据


dG
删除光标所在位置到最后一行到所有数据


d$
删除光标所在位置到该行最后一个字符的数据


d0
删除光标所在位置到该行第一个字符的数据


yy
复制光标所在的那一行(常用)


nyy
复制光标所在行的向下n行(常用)


y1G
复制光标所在行到第一行的所有数据


yG
复制光标所在行到最后一行的所有数据


y$
复制光标所在行到该行最后一个字符的数据


y0
复制光标所在位置到该行第一个字符到数据


p
将复制的数据粘贴到光标的下一行
(常用)

P
将复制的数据粘贴到光标的上一行
(常用)

J
将光标所在行与下一行的数据结合成同一行


u
复原前一个操作,相当与撤销(常用)


crtl+r
重做上一个操作(常用)


. 小数点
,重复前一个操作,例如重复粘贴,重复删除等(常用)


2、编辑模式

i
在光标所在前方处插入字符(常用)


I
在光标所在行的头部插入字符(常用)


a
在光标所在后方插入字符(常用)


A
在光标所在行的尾部插入字符(常用)


o
字母o,在光标所在的下一行处插入新的一行(常用)


O
字符O,在光标所在的上一行处插入新的一行(常用)


r
替换光标所在的那一个字符(常用)


R
一直替换光标所在的文字,直到按下Esc(常用)


3、命令模式

:w将编辑的数据保存(常用)

:w!
如果文件属性为只读,则强行写入,具体能不你写入与文件权限有关。


:q 离开vi
(常用)


:q!
强制离开不存储文件


:wq
存储后离开(常用)


:e!
将文件还原到最初状态


ZZ
若文件没有更改,则不存储离开,若文件以更改,则存储后离开。


:w filename
相当与另存为文件。


:r filename
在编辑数据中,读入另外一个文件的数据,即内容加载在光标所在行后面


:n1,n2 w filename
将此文件的第n1到n2行另存为filename文件


:!command 暂时离开vi
执行command的显示结果,例如
:! ls /home 即可在vi中查看文件信息


:set nu
显示行号


:set nonu
取消行号


Vim的Visual
Block功能
(用键盘的上下左右可见效果,鼠标看不出来)


v
字符选择,光标经过的地方反白选择


V
行选择,光标经过的行反白


crtl+v
块选择,一块一块的地方


y
复制反白地方


d 删除反白地方


多文件编辑

打开多个文件


vim filename1 filename2
filename3 ......


:n
编辑下一个文件


:N
编辑上一个文件


:files
列出当前vim打开的所有文件


多窗口编辑

:sp
filename
打开一个新窗口,如果加了filename,表示在新窗口打开一个新文件,否则表示两个窗口为同一文件内容。


crtl+w+j
按下crtl+w
后,放掉再按j,则移动到下方窗口。


crtl+w+k
同上,移动到上方窗口。


crtl+w+q
结束离开


一些常用的Vim环境设置

:set nu
设置行号


:set hlsearch
设置搜索的字符串反白,如果不想就设置为:set nohlsearch


:set autoindent
设置自动缩排,不自动缩排:set noautoindent


:set backup
是否自动备份,一般用nobackup,否则会生成一个备份文件filename~


:set ruler
设置右下角是否显示状态


:set showmode
设置左下角显示状态如--INSERT--


:set backspace=(012)
一般来说,用i进入编辑模式后可以用退格键来删除字符,但某些版本不允许,此时可以用backspace来设置,当backspace=2时,可以删除任何字符。0或1时,只能删除刚输入的字符。


:set all
显示所有的环境设置


:syntax (off / on)
是否开启语法显色。


经验:


不必每次都要设置,可以自己建立一个配置文件:如下

vim
~/.vimrc


:set
hlsearch


:set
backspace=2


:set
autoindent


:set
ruler


:set
showmode


:syntax on

:set nu
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: