博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vim技巧
阅读量:6619 次
发布时间:2019-06-25

本文共 1085 字,大约阅读时间需要 3 分钟。

  hot3.png

###删除单词块

假设有一个函数声明如下:

void anExampleOfAVeryLongFunctionName(int a, char b, int *c);

如果你想再声明五个类似的函数,他们的参数类型和返回类型都相同,一般的做法是将这个函数声明拷贝5次,

然后逐个删除每个函数声明的名称并添加新的函数名称。你可以使用diw or ciw命令一次删除整个函数名称,

这样会比使用backspace键快得多。注意,diw仅仅删除一个单词,而ciw是删除整个单词并且进入insert

模式。

###删除小括号(),大括号{},引号""内的字符

像上面的例子一样,但是这次你想声明的函数只是参数类型不一致,所以你需要删除小括号里面的所有参数,这

时候你可以使用di后者ci命令来达到这个目的。同样dici的区别是ci会进入insert`模式。

###在vim编辑器中执行shell命令

你可以这样执行一个linux命令:

:! cmd

比如你要执行ls命令,可以这样做::! ls

如果你要复制这个命令的输出到你当前编辑的文件,那么你可以这样做:

:.! cmd

如果你要将输出的内容复制到指定的行,可以这样做:

:3! cmd 3为行号

###为文本字符串创建缩写

如果你在调试程序的时候,需要添加很多打印信息,这个时候你需要打印很多printf或者console.log,这个时候

你可以为这些字符串创建缩写以节省打字的时间,比如为printf创建缩写:

:ab pf printf

这时候你在编辑模式下打出pf,然后按一下空格就可以打出printf了。然而这样的设置在vim退出以后就会失效,

如果想长期使用这个缩写,可以将上面的命令添加到/etc/vim/vimrc即可。如果想去掉某个缩写,使用下面的命令:

:unab abbreviation

###拷贝大量文本

有时候我们需要拷贝或者删除很多行的文本,我们可以在visual模式下轻松做到,首先按v进入visual模式,使用上

下键选择你需要复制或者删除的内容,然后按yy或者dd就可以完成复制或者删除了。

###其他技巧

  • 使用=对齐当前行,使用=G光标以后所有行,使用gg=G对齐整个文件。可以使用:set shiftwidth=numberOfSpaces设置对齐的宽度。

  • 使用:%!xxd是编辑器进入十六进制编辑模式,:%!xxd -r做相反操作。

  • 使用:w !sudo tee %代替sudo保存文件。

转载于:https://my.oschina.net/sundq/blog/182133

你可能感兴趣的文章
无法卸载软件? 卸载有残留
查看>>
SpringMVC(三):@RequestMapping中的URL中设定通配符,可以使用@PathVariable映射URL绑定的占位符...
查看>>
21-spring学习-springMVC实现CRUD
查看>>
Hibernate与IBatis的优缺点及可行性分析
查看>>
IDEA:将WEB-INF\lib下的Jar包添加到项目中
查看>>
【大型网站技术实践】初级篇:借助Nginx搭建反向代理服务器
查看>>
多域名THINKPHP利用MEMCACHE方式共享SESSION数据(转)
查看>>
[C#] 回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性
查看>>
Spring Data JPA: 实现自定义Repository
查看>>
学习ASP.NET MVC(十一)——分页
查看>>
创业杂记——重视自己【序】
查看>>
java面试①整体流程
查看>>
nginx http proxy 正向代理
查看>>
Python type()函数用途及使用方法
查看>>
Swift 静态派发和动态派发
查看>>
BZOJ2002: [Hnoi2010]Bounce 弹飞绵羊(LCT)
查看>>
《从“为什么”开始》听书笔记
查看>>
SQL FORMAT() 函数
查看>>
Adhesive框架系列文章--WCF 分布式服务模块使用和实现
查看>>
BMP_GIF_PNG_LZW_LZ77简介
查看>>