VIM编辑器

三种模式

       一般指令模式
               打开文件时默认的模式,具有光标移动、删除、复制、粘贴等行为
       编辑模式
               对文件进行修改等行为,通过按键"a,A,i,I,o,O,r,R"从一般模式转入编辑模式,通过ESC按键退回一般指令模式
       命令行命令模式
               可对文件进行读取、保存、退出、查找文本内容、替换文本内容、显示行号等行为,一般模式下通过按键 :、/、?转入命令行命令模式        


       编辑模式下不可以直接转换成命令行模式
                

普通编辑


vi file
文件名称需要包括后缀,如果文件不存在,则会新建,此时处于一般模式

按下"a,A,i,I,o,O,r,R"就可以转换为编辑模式
a,表示在当前光标的字符后面插入;A,表示在在光标所在行的最后一个字符后面插入
i,表示在当前光标的字符前面插入;I,表示在光标所在行的第一个非空格符前面插入
o,表示在当前光标所在行的下一行插入;O,表示在当前光标所在行的上一行插入
r,表示在当前光标的字符进行一次替换;R,在当前光标的字符进行连续替换(替换字符后光标会后移)

按下ESC转换成一般模式

一般模式下,输入:w将内容写入到文件,输入:w!强制将内容写入到文件(能否写入与权限有关)
输入:q离开vi,输入:q!强制离开vi
输入:wq将内容保存后离开,输入:wq!强制保存后离开(能否写入与权限有关)
输入ZZ,若文件未修改,则不保存离开,若文件已修改,则保存后离开
输入:w [文件名称],则把内容保存到另外一个文件中
输入:n1,n2 w [文件名称],把n1到n2行的内容保存到另一个文件中


光标的移动
常用的↑↓←→,有四个按键可以代替它们,h=←  j=↓  k=↑  l=→
+,移动到光标非空白字符的下一行;
-,移动到光标非空白字符的上一行
0或者Home,移动到光标所在行的第一个字符;
$或者End,移动到光标所在行的最后一个字符
n(某个数字)+<space>(空格键),光标移动到所在字符的右边n个字符位置
H,光标移动到当前屏幕的第一行的第一个字符;
M,光标移动到当前屏幕的中间一行的第一个字符;
L,光标移动到当前屏幕的最后一行的第一个字符;
G,光标移动到文件的第一行的第一个字符;
nG(n为某个数字),移动到文件的第n行的第一个字符;
gg,移动到文件的第一行的第一个字符;
n + enter(n为数字),光标向下移动n行
Ctrl + f ,屏幕向下移动一页,相当于pagedown;
Ctrl + b,屏幕向上移动一页,相当于pageup;
Ctrl + d,屏幕向下移动半页;
Ctrl + u,屏幕向上移动半页


查找和替换
/+字符串,向下查找字符串;?+字符串,向上查找字符串。按下enter键显示查找出的全部字符串,然后,继续按下n,光标移动到下一个查找到的符合项;按下N,光标移动到上一个查找到的符合项。
:n1,n2s/字符串1/字符串2/g,n1、n2为数字,表示在n1和n2行内,用字符串2替换字符串1  
:n1,n2s/字符串1/字符串2/gc,在替换前提示用户确认
PS($,可以表示到最后一行)


删除、复制和粘贴
x,删除当前光标所在字符;X,删除当前光标字符的前面一个字符;nx,n代表数字,连续删除包括当前光标在内所在字符的后面连续n个字符
dd,删除当前光标所在的一行;ndd,删除包括当前光标所在行的后边连续n行;d1G,当前光标所在行到第一行的所有内容;dG,删除当前光标到最后一行的所有内容;d0,删除当前光标所在字符到该行的第一个字符的内容(不包含光标所在字符);d$,删除当前光标所在字符到该行最后一个字符的内容(包含光标所在字符)
yy,复制当前光标所在的一行;nyy,复制除包括当前光标所在行的后边连续n行;y1G,复制当前光标所在行到第一行的所有内容;yG,复制当前光标到最后一行的所有内容;y0,复制当前光标所在字符到该行的第一个字符的内容(不包含光标所在字符);y$,复制当前光标所在字符到该行最后一个字符的内容(包含光标所在字符)
p,将复制的数据粘贴到光标所在的下一行;P,将复制的数据粘贴到光标所在的上一行
J,将光标所在列与下一列的数据结合成同一列
c,重复删除多个数据,例如向下删除 10 列,[10cj]

撤销与恢复
u,撤销上一次操作
Ctrl +r,恢复上一次操作
.,重复前一个动作

其他
:! command,暂时离开 vi 到命令行界面下执行 command 的显示结果

vim 的暂存盘、救援回复与打开时的警告讯息
在使vim过程中,被编辑的文件会产生一个.swp的暂存盘,当使用过程中程序异常中断,就能够起到恢复数据的作用。当程序异常中断后,再次打开文件时,就会有警告信息的提示,根据实际情况可以按照提示操作。暂存盘需要手动删除

 

vim高级编辑


区块的选择
v,字符选择,将光标所经过的字符反白选择
V,列选择,将光标所经过的列反白选择
ctrl +v,区块选择
y,复制反白的数据
d,删除反白的数据
p,粘贴反白的数据

多文件编辑
vi file1 file2...
:n,跳转到下一个文件
:N,跳转到上一个文件
:files,列出编辑的文件

多窗口编辑
:sp [file],没有file则默认打开同一个文件
ctrl+w+↓/j,先按下 [ctrl] 不放, 再按下 w 后放开所有的按键,然后再按下 j (或向下方向键),则光标可移动到下方的窗口。
ctrl+w+↑/k,先按下 [ctrl] 不放, 再按下 w 后放开所有的按键,然后再按下 k (或向上方向键),则光标可移动到上方的窗口。
ctrl+w+q,退出

vim补全功能
[ctrl]+x -> [ctrl]+n 通过目前正在编辑的这个"文件的内容文字"作为关键字,予以补齐
[ctrl]+x -> [ctrl]+f 以当前目录内的"文件名"作为关键字,予以补齐
[ctrl]+x -> [ctrl]+o 以扩展名作为语法补充,以 vim 内置的关键字,予以补齐

                

vi环境设置与记录
~/.viminfo  行为记录登记
:set all
~/.vimrc    需要手动创建
 

编码问题

DOS与linux断行字符
DOS断行字符为^M$,称为CR(^M)与LF($)字符,linux断行字符只有LF($)
dos2unix [-kn] file [newfile]
unix2dos [-kn] file [newfile]
-k,不更新mtime
-n,保留旧文件,将修改后的文件保存为新文件


语系编码转换
iconv  --list
iconv -f 原编码 -t 新编码 sourcefile [-o newfile]
       --list,列出iconv支持的语系
       -f,from,原编码
       -t,to,新编码
       -o,输出到新文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值