Linux6_vim与vi操作

vim是vi发展而来的文本编辑器;

vi是最原始的文本编辑器;

 

vi 文本编辑器的进阶版
vi iMproved 的缩写;

 

 

使用vim,完全可以不用鼠标了;而且效率很高;会成为编程的生产力工具;
vim的图形版gvim;vimtutor是vim的教程程序;

 

有三种模式:交互模式、输入模式、底线命令模式

 

交互模式
默认模式,正常模式,normal mode;这个模式中不能输入文本;
可以让我们再文本间移动,删除一行文本,复制粘贴文本;跳转到指定行,撤销操作;

插入模式
Insert mode
文本编辑器的一贯作风;
最常用的方法交互模式下按下i;
按下esc可以回到交互模式;
交互模式下,输入a,会进入插入模式,且光标移动到当前光标的下一个位置;
还有小写o,shift+o(大写O);


命令模式
Command mode
底线命令模式;
运行一些命令(退出,保存等等)
激活一些vim配置:语法高亮,显示行号
甚至还可以发送一些命令给终端命令行:ls,cp等
进入命令模式,首先进入交互模式,然后shift+:

q 退出程序

w 保存程序

q! 强制离开,不存储

wq 保存后离开

 

 


 


基本操作:

打开vim:终端命令行输入vim ;

打开文件:vim 文件名 //文件不存在,会创建文件;

插入文本:交互模式下输入i,进入插入模式,就可以插入文本了;

移动:交互模式下,向左移动一个字符,j向下移动一个字符,k向上移动一个字符,l向右移动一个字符;也可以使用四个方向键;

移动到行首:交互模式下输入0,home也有同样效果

移动到行末:交互模式下输入shift+4($),END也有同样效果

一个单词一个单词地移动:交互模式下输入w

保存文件:交互模式下,按下冒号键:进入命令模式,再按下w,w是write的缩写表示写入

退出vim: :q

:x和:wq 有同样的效果;



 

标准操作

删除字符:交互模式下,输入x,会删除字符;

一次性删除多个字符:交互模式下,先输入数字,然后输入x;

删除单词:交互模式下,输入d;被删除的内容会暂存在内存中;好像剪切那样;

删除行:交互模式下,输入dd;可以和数字配合,删除多行;

删除一个单词:交互模式下,光标置于首字符处,输入dw;如果将光标放在非首字符上,只会删除从当前字符开始到下一个空格前的所有字符;

一次性删除多个单词,例如3个单词,输入3dw;

删除行首,删除行末:d0,d$ 分别删除当前光标到行首的所有字符,删除当前光标到行末的所有字符;

剪切 : dd来剪切一行

复制 : yy来复制一行

类似的操作有:y$ dw y0 d0 d$

粘贴 :p来粘贴,粘贴到当前光标之后;7p表示粘贴7次;

替换一个字符:r,在交互模式下,将光标置于想要替换的字符上,按下r键,接着输入要替换的字符;

切换到替换模式:shift+r(大写的R),会切换到替换模式,左下角会显示replace;替换模式下可以一次性替换多个字符;

退出替换模式:esc

撤销操作:交互模式下输入u;英文undo的意思;

 

取消之前的撤销操作:ctrl+r

跳转到指定行:7+G(ctrl+g),或者7+gg

跳转到最后一行:G(shift+g)

跳转到第一行:gg

显示行号:进入命令模式,set nu

取消显示行号:进入命令模式,set nonu

 



高级操作://都是在交互模式下进行
分屏 横向分屏 :sp 回车即可,sp是split的缩写,是分割的意思;默认是横向分割;
垂直分屏 :vsp
分屏模式下的主要快捷键:ctrl+w 然后在ctrl+w 光标从一个viewpoint移动到另一个viewpoint
ctr+w 然后按j移动到下方的viewpoint, 同理 k h l;
ctrl+w再按+扩大viewpoint;ctrl+w再按-减小当前viewpoint;ctrl+w再按=均匀分配viewpoint;
ctrl+w再按r调换各个viewpoint位置;ctrl+w再按q或c关闭当前viewpoint;输入:quit也有同样效果
ctrl+w再按o只保留当前viewpoint,关闭其他viewpoint;或者在命令行模式下输入:only也有同样效果

合并 :r 实现在光标处插入一个文件的内容
:r 另一个文件名

查找:输入/ 进入查找模式,然后输入要查找的字符串,按下回车,光标会转到文件下一个查找处,把所有字符串高亮
如果字符串不存在,会显示pattern not found
如果要查找下一个匹配想,输入n键,反向的话,输入N(ctrl+n);
用/进行查找是从当前光标处开始,向文件尾部搜索;
如果要从当前光标处开始,向文件开头搜索,将斜杠替换为问号?

查找并替换: :s/旧字符串/新字符串 //替换光标所在处字符串
:s/旧字符串/新字符串/g //替换光标所在行处字符串
:#,# s/旧字符串/新字符串/g //替换文件中第#行到第#行的所有匹配的旧字符串为新字符串
:%s/旧字符串/新字符串/g //替换文件中所有匹配的字符串

运行外部命令
:! //vim中先输入:!,然后再输入命令名称, :!ls 就是vim打开的文件的所在目录运行ls命令;



可视模式:
s键,也可以进入插入模式,会删除光标所在字符,并进入插入模式;
可视模式 相当于高亮选取文本后的交互/正常模式;

进入可视模式的方法:
v(小写):字符可视模式
V(大写):行可见模式;选择整行;d 删除,I 插入;
ctrl+v : 块可见模式;方便批量操作;

 



配置vim

安装官方插件;vim官网上,点击scripts;

选项参数:vim启动后,可以运行一些指令来激活一些选项参数;//这是短暂性的
:set nu
:set nonu
激活 :set nu
不激活 :set nonu
了解选项参数的状态 :set 选项名? :set nu?

 

 

配置文件中配置选项参数
如果配置时永久性的,创建一个vim的配置文件;
/etc中有一个.vimrc

选项参数存在,且被激活 前面没有双引号;
选项参数不存在,但没有被激活, 前面有双引号;
选项参数还没有存在;

syntax 配置语法高亮;syntax on
修改了.vimrc这个配置文件后,必须保存次文件,退出,再重新运行vim,以使用最新的配置;

showcmd 显示当前命令 //可以显示交互模式下输入的命令
ignorecase 在查找的时候忽略大小写;
mouse 鼠标支持

 

参考别人的配置文件;amix/vimrc
配置vim,打造自己的IDE;

 

posted @ 2018-09-25 16:57  Grooovvve  阅读(161)  评论(0编辑  收藏  举报