Vim大法好!
Posted 生信星球
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vim大法好!相关的知识,希望对你有一定的参考价值。
今天是生信星球陪你的第51天
你想找辆共享单车,发现满街都是别家车,没有一辆你能骑。
你想学点生信,搜了“初学者教程”,满眼尽是高大上,没有一句能看懂。
终于你跨越茫茫宇宙,来到生信星球,发现了初学者的新大陆!
豆豆这一个周系统地学习了Linux,现在慢慢分享出来,今天介绍Vim
Vim编辑器:
Vi : Visual Interface; Vim: Vi Improved
-- 文本编辑器:编辑纯 ASCII 的文档,没有多余的修饰符
-- vim是一种全屏编辑器,模式化编辑器
一、模式:
【默认】编辑模式(命令模式)—执行命令
输入模式—输入文本
末行模式—执行待定命令
模式切换
编辑模式-->输入模式:
i:在当前光标所在字符的前面,转为输入模式;
a:在当前光标所在字符的后面,转为输入模式;
o:在当前光标所在行的下方,新建一行,并转为输入模式;I:在当前光标所在行的行首,转换为输入模式
A:在当前光标所在行的行尾,转换为输入模式
O:在当前光标所在行的上方,新建一行,并转为输入模式;
输入模式 --> 编辑模式
Esc
编辑模式 -- > 末行模式
:
例如:
删除第10行,直接在
:
后输入10d
删除第10-12行,输入
10,12d
设置行号:set nu
不退出使用shell:比如在vim中想查看/etc目录下文件
! ls /etc
二、文件打开与关闭
打开文件
vim +# file : 打开后直接处于第#行
vim + file : 打开后处于最后一行
vim + /PATTERN: 打开文件,定位到第一次被PATTERN匹配到的行首
关闭文件
# 1、末行模式关闭文件
:q 退出
:wq 保存并退出=:x
:q! 不保存并退出
:w 保存
:w! 强行保存 # 只读文件, 只有管理员可以强行保存
# 2、编辑模式下退出
ZZ:保存并退出
三、移动光标
逐字符:
h:左 l:右
j:下 k:上
<数字>[h/j/k/l]:移动n个字符
逐个单词:
w:移至下一个单词的词首
e:跳至当前或下一个单词的词尾
b:跳至当前或前一个单词的词首
<数字>w:跳n个单词
行内跳转:
0:跳至绝对行首
^:跳至行首的第一个非空白字符
$:跳至绝对行尾
行间挑战:
<数字n>G:跳转至第n行;
G:跳至最后一行
末行模式下,直接给出行号,回车即可
四、翻屏
Ctrl+f:向下翻一屏
Ctrl+b:向上翻一屏
Ctrl+d:向下翻半屏
Ctrl+u:向上翻半屏
五、删除
删除单个字符
x:删除光标所在处的单个字符
<数字>x:删除光标所在处及向后的共n个字符
删除多个或整行
d命令可以跟跳转命令组合使用, 如:
dw, de, db, d$
dd:删除当前光标所在行
<数字>dd:删除包括当前光标所在行在内的n行,然后跳到下一行;末行模式下: Start,End d
.
表示当前行
$
最后一行
$-n
:倒数第n行+<数字>:向下的n行
删除的内容可以撤销,最后一次删除的内容可以粘贴g
先删除,再转为输入模式 —与d类似
修改命令(change) c --> 比如输入cc,那么整行删除然后直接可以输入
六、小操作
粘贴 p/P
p:如果删除或复制为整行内容,则粘贴至光标所在行的下方;
如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面;
P:如果删除或复制为整行内容,则粘贴至光标所在行的上方;
如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面;
复制 y — 与d类似
替换
r : 替换单个字符,
[#]r<chr>
r后面要接上替换的字符;前面[#]就是输入一个数字,表示将后面那个字符替换几次,可以不填
R: 一次实现多个替换
撤销操作
u
,可以按多次
如果多撤销了一次,可以还原上一次撤销ctr + r
重复上一次操作
.
可视化模式
v : 按字符选取与shell交互
:! COMMAND
七、查找替换
查找
/PATTERN:从当前往后找
?PATTERN:从当前往前找
n:往后跳转 N:往前跳转
查找并替换
在末行模式下使用s命令(和 sed 一样)
s /PATTERN / STRING / [g,i]
g: 全局替换; i忽略大小写 。 二者可以同时使用
%: 表示全文查找、替换# 例如:从当前行到倒数第二行,查找所有的小写sh替换成大写的SH
: .,$-1s/sh/SH/g# 又如:将/etc/server.repo文件中的ftp://instructor.com/pub替换为http://172.16.0.1/yum 【这里的文件是虚拟的,只为演示】
# 这里有个小技巧,可以使用# @等符号代替/,这样就不用转义了
:%s#ftp://instructor.com/pub#http://172.16.0.1/yum#g
八、多文件处理 [熟练了会很常用]
1.使用VIM编辑多个文件
vim FILE1 FILE2 FILE3
:next 切换至下一个文件
:prev 切换至前一个文件
:last 切换至最后一个文件
:first 切换至第一个文件
退出
:qa 全部退出2.分屏显示一个文件
Ctrl+w,松开后按, s:水平拆分窗口
Ctrl+w,松开后按, v:垂直拆分窗口
在窗口间切换光标:
Ctrl+w,松开后按,ARROW(上下左右键)
:qa 关闭所有窗口3.分窗口编辑多个文件
vim -o :水平分割显示
vim -O :垂直分割显示4.将当前文件中部分内容另存为另外一个文件
末行模式下使用w命令
:w
:ADDR1,ADDR2w /path/to/somewhere5.将另外一个文件的内容填充在当前文件中,合并两个文件
:r /path/to/somefile
九、高级设定
1.显示或取消显示行号(仅对当前vim进程有效)
# number=nu
:set nu
:set nonu2.忽略或区分字符大小写【不常用】
# ignore character =ic
:set ic
:set noic3.设定自动缩进
# autoindent = ai
:set ai
:set noai4.查找到的文本高亮显示或取消
:set hlsearch
:set nohlsearch5.语法高亮
:syntax on
:syntax off6.编辑配置文件
/etc/vimrc:对所有用户都生效
~/.vimrc:对当前用户生效7.想学习VIM的使用?请使用内置的vimtutor!
十、小问题
有时用vim编辑没有保存就关上了shell,那么下一次再打开会警告:
让你选择用只读方式打开、强行编辑、删除、退出等
而且每次都会提醒,此时会发现在原始文件file旁,会有一个新的file.tmp文件,
将它删除就不会再提示了
初学生信,很荣幸带你迈出第一步。
我们是生信星球,一个不拽术语、通俗易懂的生信知识平台。需要帮助或提出意见请后台留言或发送邮件到Bioplanet520@outlook.com~
以上是关于Vim大法好!的主要内容,如果未能解决你的问题,请参考以下文章