vim常用命令-适用于ic设计

// vimrc
键盘映射
noremap  n h // 用h 替换 u
map S :w<CR> // 用大写s 替换w做保存
// 小写s是删除当前字符并进入写入模式,可以用其他建代替,可以把s替换为nop(no operation)
map s <nop>
map R :source $MYVIMRC<CR>
syntax on  // 打开文本高亮
set number      or set nu     // 打开行号
set nu!                       // 打开或取笑行号
set list                      // 显示不可见字符
set cursorline                // 设置光标线
set wrap                      // 代码换行
set showcmd                   // 显示当前敲击命令
set wildmenu                  // tab补全
set hlsearch    or set hls    // 设置搜索高亮
set incsearch   or set inc    // 边输入边高亮
set nohlsearch  or set noh    // 取笑搜索高亮
set ignorecase  or set ic     // 忽略大小写0.
set scrolloff=5 or set        // 底部永远显示5行
set spell       or set        // 拼写检查

normal mode
<operation> <motion>
ciw          // c 删除并进去插入模式,i in,w当前word。删除当前word 并进入插入模式
ci"/</(/{/[  // 删除"或<或(或{或[号中的所有字符并进入插入模式
di"/</(/{/[  // 删除"或<或(或{或[号中的所有字符但不进入插入模式
vi"/</(/{/[  // 选中"或<或(或{或[号中的所有字符
yi           // 复制选中字符

yw        //复制光标所在到word结束

yiw     //复制光标所在word
yy           // 复制当前行

y^   复制至行首,或y0。不含光标所在处字符。
y$   复制至行尾。含光标所在处字符。

yw   复制一个单词。
y2w  复制两个单词。

yG   复制至文本末。
y1G  复制至文本开头。


f            // find +字符,寻找字符,前可以加相应的cdy等操作,如yf: 表示复制直到冒号的字符
选中 u       // 全部转为小写
选中 shift u // 全部转为大写
选中 ~       // 小写变大写,大写变小写

zz            // 将当前行设置为中心。
zt            // 将当前行移动到屏幕顶端。
zb            // 将当前行移动到屏幕底端。
H             // 将光标移动到屏幕顶
M             // 将光标移动到屏幕中间
L             // 将光标移动到屏幕底
ZZ            // 大写zz保存并退出
ctrl b        // =page up   上翻
ctrl f        // =page down 下翻
:行号        // 跳到某一行
行号gg/G      // 跳到某一行
行数 j/k      // 上下跳固定行数
ctrl o        // 回到之前的位置
ctro i        // 回到回到之前的位置
ctrl n        // 自动补全向下选择
ctrl p        // 自动补全向上选择

ctrl a        // 移动光标到数字上,按下数字加一
ctrl x        // 移动光标到数字上,按下数字减一


u             // 撤销
U             // 撤销整行
ctrl r        // 取消撤销

:!            // 后接外部命令
:r            // 后接外部命令或者文件名,并取出到当前文本中

:tabe, tabnew // 如果加文件名,就在新的标签中打开这个文件, 否则打开一个空缓冲区。
gt            // 切换页面
:split       // 上下分屏
:vsplit      // 左右分屏
:only        // 仅保留当前窗口
:hide        // 关闭当前窗口


insert mode
ctrl y        // 复制上一行字符


visual mode
v                     // 进入可视模式,移动方向键可选中多个字符
shift v               // 选中一行,移动上下键可选中多行
在visual mode下按下:后输入normal 后就可以进行normal模式下的操作了,区别是会对选中的区域同

时操作。
如 v :<> normal icmd // 在选中行前插入字符cmd
visual block mode 可视块模式
ctrl v                // 进入可视块模式 移动方向键可调整块范围
:shift i             //在选中块前插入,输入字符后按esc,即可批量更改。

daw 删除当前字符所在单词

dd  删除当前行
dj  删除下一行
dk  删除上一行

dgg  删除当前行至文档首部
d1G  删除当前行至文档首部
dG   删除当前行至文档尾部

 

可视化模式下 v 的特殊操作

当操作的文本光标在 “”,‘’ ,(),{} ,[(双引号,单引号,小括号,大括号,中括号)

当中的时候,可以通过 va"选中 ”“ 内的所有内容包括双引号 ,

vi" 选中 "" 内的所有内容,不包括 ""。

va,vi 会快速选择区域,va 后面会紧跟一个区域结束标志,

a 会选中结束符标志,i 就不会。

例子如下:

"hello world [VIM is so strong],{we all can master vim skill}"

假设当前光标定位在上面的文本 M 处:

va] 操作将会选中一下文本:

“hello world [VIM is so strong],{we all can master vim skill}“

vi] 操作将会选中如下的区域,没有包含 []:

“hello world [VIM is so strong],{we all can master vim skill}“

VIM 的宏录制

假设需要操作的文本如下,

需要将如下的多行文本的首行键入一个 tab 键。

hello

hello world

hello world , vim

宏录制的录制操作

先将光标移动到第一行,在普通模式下按下 q 键

(宏录制是 q 键启动的),在按一个 a (字母随意),表示该宏注册为 a ,

按下 I 在行首插入一个 tab 键,

按下jj或者 <ESC>退出编辑模式,按下 j 将光标移动到下一行行首,

最后按下 q 键完成录制操作(宏录制是 q 键结束的)。

总结上面例子的操作流程:

q → a → I → tab → jj → j → q

上面的例子成功地把在行首插入 tab 的功能录制了下来,那么如何应用到其他行呢?

宏录制的使用

上述的例子,在正常模式下,

@a执行宏录制的一系列动作,

将会在第二行执行插入 tab 。

@@ 是对上一次宏使用的重复操作。

n@a 就会执行 n 次一系列的动作。

使用宏录制可以一次执行一系列的操作,

可以针对一些重复度较高的操作进行宏录制。

精准查找

如果文本中有这三个单词

hellohelloworldhellopython

那我使用 /hello ,这三个词都会匹配到。

有没有办法实现精准查找呢?你可以使用

/hello>

精准查找:匹配行首、行末

# hello位于行首
/^hello

# world位于行末
/world$

ddp    交换光标所在行和其下紧邻的一行。

以句为单位移动

(   移动到句首
)   移动到句尾

当在查看错误日志时,正常的步骤是,vim打开文件,然后使用 shift+g  再跳转到最后一行,这里有个更简单的操作可以在打开文件时立即跳到最后一行。只要在 vim 和 文件 中间加个 + 即可。

vim + you.log

举一反三,当你想打开文件立即跳转到指定行时,可以这样

# 打开文件并跳转到 20 行
vim you.log +20

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

superyan0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值