首页 > 代码库 > vim基础使用
vim基础使用
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处。LaplaceDemon/SJQ。
http://www.cnblogs.com/shijiaqi1066/p/3931580.html
文本编辑器与字处理软件
字处理软件:Word, WPS
文本编辑器:处理ASCII数据
文本编辑:全屏,行(sed)
常用文本编辑器
- nano:Linux中的一个简单的文本编辑器。
- vi: Visual Interface
- vim:vi improved 模式化,功能非常强大。
使用vim
vim命令格式:# vim [options] [/path/to/somefile]
例:打开vim。在shell下输入vim,回车。
VIM导师
在shell下使用 vimtutor 命令。
Vim工作模式
Vim的三种最基础工作模式:
命令模式:以快捷键在命令模式做操作。vim默认为命令模式。
插入模式:即可以使用键盘做操作。
编辑模式:以命令与回车进行操作。
模式之间的切换
插入命令
如下按键,使vim从命令模式切换到插入模式,
a:在光标后附加文本
i:在光标前插入文本
o:在光标所在行之后下插入新行。
A:在本行行末附加文本。
I:在本行开始前插入文本。
O:在光标所在行之前插入新行。
光标(定位)命令
字符间跳转:
h:左 l:右 j:下 k:上
数字+光标移动键
例:数字+h: 向左侧跳指定个字符;一以此类推。
行内跳转:
^: 跳至行首的第一个非空白字符。
$: 跳至绝对行尾。
0: 跳至绝对行首。
单词间跳转:
w: 后一个单词的词首
e: 跳至当前或下一个单词启尾;
b: 跳至当前或前一个单词启首;
句子间跳转:
) : 下一句;
( : 前一句;
段落间跳转:
} : 下一段;
{ : 前一段;
屏幕中跳转:
H:移至屏幕上端。
M:移至屏幕中央。
L:移至屏幕下端。
行号命令
在编辑模式下,输入命令可以打开或关闭行号的显示。
:set nu :显示行号。
:set nonu :隐藏行号。
光标跳转至指定行:
gg :到第一行。
G :到最后一行。
nG :到第n行。
:n :到第n行。
删除命令
x:删除光标所在处字符。
nx:删除光标所在处后n个字符。
dd:删除光标所在行。
ndd:删除n行。
D:删除从光标所在处到行尾。
dG:删除光标所在行到文件末尾的内容。
在编辑模式下
:n1,n2d:n1,n2表示行号。删除指定范围的行。
复制和剪切命令
yy、Y:复制当前行。
nyy、nY:复制当前行以下n行。
dd:剪切当前行。
ndd:剪切当前行以下n行。
p、P:粘帖在当前光标所在行下或行上。
替换命令
有些小字符可以不进入命令模式。
r:更改光标所在处的字符。
R:从光标所在处开始替换字符,按下Esc结束
:%s/old/new/g :全文替换字符串。old表示原字符串,new表示新字符串。
:n1,n2s/old/new/g :在指定的行中替换字符串。n1、n2表示行号。old表示原字符串,new表示新字符串。例:4,10s/superman/aoteman/g
:n1,n2s/old/new/g c :在命令后使用c,表示替换时,会提示。
技巧:
连续行注释
:n1,n2s/^/#/g :为n1行到n2行的行首插入“#”。n1,n2为数字,表示行号;^是一个特殊符号,表示行首。
:n1,n2s/#//g :为n1行到n2行中的“#”去除。n1,n2为数字,表示行号。
:n1,n2s/^#//g :为n1行到n2行中行首的“#”去除。n1,n2为数字,表示行号。^是一个特殊符号,表示行首。
:n1,n2s/^/\/\//g :为n1行到n2行的行首插入“//”。n1,n2为数字,表示行号;^是一个特殊符号,表示行首。\是转义符。
输入替换
在编辑模式下输入
:ab mymail ultraman@m78.net
回车后,在插入模式下每当输入了“mymail ”,vim将自动将其替换为“ultraman@m78.net”
取消ab设置。
:unab mymail ultraman@m78.net
搜索命令
/string :命令模式下输入“/”再输入需要查找的字符串,回车。vi即会开始查找字符串。该搜索区分大小写。
n:定位到下一个匹配的字符串。
N:定位到上一个匹配的字符串。
在编辑模式写,打开忽略大小写功能
:set ic
关闭忽略大小写功能
:set noic
撤销命令
u:取消上一步操作。保存后无法再进行撤销。
保存与退出
在命令模式
保存 :w
另存为 :w /filepath/filename
保存退出 :wq。
强行退出 :q!。
或者“Shift+z+z”,即“ZZ”。也可以保存退出。
文件的所有者或者root用户,即便没有文件的写权限,也可以强行保存退出。
vi中执行命令
在编辑模式下,使用“:!”后跟Linux命令,这样就可以在vi中执行Linux命令了。
例:查看/root目录下的内容。
:! ls /root
导入文件
:r /fileparh/filename
将指定文件的内容导入到当前正在编辑的哦文件中。
将执行结果导入到当前编辑的文件中。
:r !linux
例:这是一个小技巧,在文件中导入时间。
:r !date
使用map定义快捷键
使用map可以在vi中定义快捷键。使用unmap取消快捷键。
例:定义Shell脚本的注释
输入“:map ”。
定义Ctrl+p,需要在命令模式下输入Ctrl+v,Ctrl+p,或Ctrl+v+p,表现在vi中,显示为“^P”。注意:千万不能直接输入^符号,这是无效。
在“^p”后跟上vi命令模式下操作的命令。输入使用注释,则输入“I#<ESC>”。
在命令模式下就可以使用【Ctrl+P】为光标当前行添加注释。
例:定义【Ctrl+E】在文档中快速插入自己的邮箱。
“:map ^E imy@mail.net”
例:定义【Ctrl+B】在光标所在行的第一个字母取出。该快捷键可用于shell脚本中删除第一个字母 # 。
“:map ^B 0x”
vi的配置文件
vim的设置无法被保存。退出再次使用,之前的设置则无效。例:在vim中设置了 :set nu 显示行号,退出再进入vim,行号不会显示。包括map定义的快捷键,退出再进入vim,快捷键不会生效。
若需要让设置永久生效,则需要将设置写入配置文件。
vi的配置文件存放在文件的家目录中。(Linux中,若用户没有对应的家目录,则无法登陆。)
vi的配置文件:~/.vimrc 。缺省情况下,该配置文件为空。
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处。LaplaceDemon/SJQ。
http://www.cnblogs.com/shijiaqi1066/p/3931580.html
vim基础使用