生物信息学

vim简单实用技巧

2018-10-18  本文已影响140人  Amy_Cui

vim的使用

基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode):

启动vim随即进入命令行模式 等同于按Esc键;

命令行模式(Command mode)

切换到输入模式

i 切换到输入模式,修改位置为光标所在位置,即在光标处开始插入字符!!!
a 切换到输入模式,修改位置为光标下一位置,光标自动往下一个字符。
I  切换到输入模式,调到某一行行首。
A 切换到输入模式,调到某一行行末。


以下均是在Esc模式下

查找

/find 向下查找。小技巧:在炒鸡炒鸡长的一行里,方便鼠标定位,按i即可修改,不用一个一个字符滑动
?find 向上查找。
n 代表重复前一个搜寻动作,比如/find 搭配n 向下查找下一个。或者用上箭头+enter
N 代表『反向』进行前一个搜寻动作。,比如/find 搭配N 向上查找下一个。

字符的删除

x 等同于delete键
10x 连续向后删除 10 个字符。
X 等同于backspace键

行的复制和删除

yy 复制当前行;结合 p粘贴所复制的行数! eg:2yy 然后 p **
dd 删除当前行;结合p粘贴所删除的行数!
eg:2dd 然后 p** 个人喜欢这么用,因为不用动鼠标拷贴 !!!

yy搭配p搭配. 重复粘贴该行;
dd搭配p搭配. 重复删除光标所在行;

替换

:%s/before/after/ vi里的替换操作(底层命令行模式),也可用sed -i 's/before/after/' file(一不小心替换错了,尴尬,所以最好不要用-i在原文件上操作)实现;末尾加g表示一行内全部替换。!!!
r 按完后毫无反应,但是却可以实现替换光标所在字符。
R 按R后下方出现-- REPLACE --显示当前不是插入模式,是replace模式。Esc可退出
`` 

撤销和重复

u替换错了怎么办??u撤销,可多次使用。!!!
ctrl+r 退回,比如我不小心按到u
. 重复删除或者复制

保存和退出

:wq && wq! 保存和强制保存/覆盖!!!
:q && :q! 退出和强制退出!!!
:w new_file_name 简言之另存为,可保留源文件。方便我忘记复制,在原流程里改数据,嘎嘎!!!

行的编号

:set nu 或者:set number 撤销使用:set number。!!!
:set paste  VS set nopaste

输入模式(Insert mode)

  一般大家都会在环境设置里设置自动tab,方便写程序。

配置.vimrc

比如我的.vimrc里:

set showmatch           " auto match ()
set smartindent         " auto tab

  坏处就是在你从另一个文档里粘贴一段代码到当前vi文本里时,自动tab就会在你原有模块的基础上,继续补加tab,然后你就看到了好好的文本变歪了。所以我最喜欢在Esc模式下用set paste清除自动补加tab功能,然后用set nopaste还原。

上一篇下一篇

猜你喜欢

热点阅读