折腾VIM的C++缩进
自己是2014年的时候,开始学习VIM编辑器。记得当时把整个VIM入门手册几乎通读了一边,为其强大的功能和便捷的操作所折服。
今天再次捣鼓了以下VIM,只因为用VIM编辑C++的代码时,类中的public/protected/private等关键字会自动缩进(这与通常C++的默认缩进风格并不一致).
class Base
{
public:
virtual void func()
{
cout << "func" << endl;
} virtual void func2()
{
cout << "func2" << endl;
}
virtual ~Base() {}
int m = ;
};
而自己希望的是
class Base
{
public:
virtual void func()
{
cout << "func" << endl;
} virtual void func2()
{
cout << "func2" << endl;
}
virtual ~Base() {}
int m = ;
};
本以为自己需要修改VIM的indent文件,于是进入目录/opt/share/vim/vim80/indent/,查看cpp.vim,发现C++在VIM中有默认缩进规则,实际上不需要单独的缩进配置。那怎么办呢?难道要修改源代码吗?还是算了吧,自己可没那么大的信心。
之后搜索VIM的帮助手册,查找关键字public,结果意外地发现自己想要的这个功能,VIM早已有现成的了!通过设置cinoptions即可,就像设置VIM其他的参数一样,输入如下命令
:set cinoptions+=g0
当然,也可以把这个写入当前用户的vimrc文件中,这样每次打开VIM都会生效。
有关cinoptions的具体内容,可以在VIM中输入:help cinoptions查看
折腾VIM的C++缩进的更多相关文章
- 【转】 Vim多行缩进及高级命令
学习别人的帖子,把内容变成自己的就是成长,此处MARK下 Vim多行缩进技巧 1.按v进入visual状态,选择多行,用>或<缩进或缩出 2. 通常根据语言特征使用自动缩进排版:在命令状态 ...
- vim代码粘贴缩进混乱的问题[Linux]
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp76 直接在vim插入模式下粘贴: 直接粘贴,剪贴板上的每个字符都相当 ...
- +p解决vim粘贴自动缩进。 数字gg跳到vim指定行。 vim查找到后,enter键修改
+p解决vim粘贴自动缩进. 数字gg跳到vim指定行. vim查找到后,enter键修改
- Ubuntu18.04系统下安装Pycharm&vim设置自动缩进及默认显示行号
Ubuntu18.04系统自带python3.6及python2.7,Pycharm是一款非常强大的IDE.目前Pycharm有两个版本:专业版和Community社区,区别是专业版是收费,而且功能更 ...
- Linux中vim编辑器的缩进的功能键
vim编程时,经常需要对代码进行缩进处理,以增加程序的可读性和后期的代码维护. 可以采用多种方式达到缩进的目的: 1) 命令模式(command mode) 2) Visual模式(visual mo ...
- vim实现代码缩进和可视区域的字符串替换
今天2014年9月12号,实现了vim下的代码自动缩进和替换可视区域的字符串,之前一直在用vim这个强大的编辑器,它的强大只有用了的人才知道,现在把这两个很强大的功能展示出来,有个这两个功能,即使你写 ...
- vim的tab缩进及用空格设置
编辑~/.vimrc文件,分别设置用空格而不是用tab,一个tab多少个空格,自动缩进多少宽度,显示行号. set expandtabset tabstop=4 set shiftwidth=4 se ...
- vim设定Tab缩进长度
在Linux系统中,vim是一款非常好用的文本编辑器,那么,如何在Linux下的vim编辑器设定Tab的缩进长度呢? Linux系统下,vim编辑器Tab键的默认长度为8个空格,在vim中可以通过修改 ...
- vim的代码缩进
例如下面一段代码: 现在要统一缩进6个tab,在UltraEdit里首先要选中文本,然后按6次tab,VIM中的操作是:首先按V(shift+v)进入行visual模式,然后按7次j选中这段文本(或者 ...
随机推荐
- SpringMvc学习---基础知识考核
SpringMVC 1.SpringMVC的工作流程 流程 : 1.用户发送请求至前端控制器DispatcherServlet2.DispatcherServlet收到请求调用HandlerMappi ...
- Windows as a Service(1)—— Windows 10服务分支
前言 作为公司的IT管理员,管理全公司Windows 10操作系统的更新一直是工作中的头疼之处.微软提供了很多方法来帮助我们管理公司的Windows 10更新,比如Windows Server Upd ...
- Bearer Token的加密解密规则(OAuth中间件)
在OAuthBearerAuthenticationMiddleware中使用Microsoft.Owin.Security.DataHandler. SecureDataFormat<TDat ...
- MySQL语法相关其一
一篇基础语法相关的笔记 // 参考资料: MySQL入门很简单 黄缙华等编著 清华大学出版社 北京 建议进入官网下载对应版本后安装:https://dev.mysql.com/downloads/my ...
- SQL Server系统常用存储过程
SQL Server系统存储过程也是好几百个,算了,还是写几个常用的. 1.sp_help 查询表的信息 执行存储过程: sp_help Person 显示结果如下: 妈了个B,有了这张图,你还不懂怎 ...
- [Assignment] C++1
作业要求: 给出圆半径求面积. 使用cin和cout.用多个源文件处理函数. →代码在这里
- scala当中的文件操作和网络请求
1.读取文件当中每一行的数据 def main(args: Array[String]): Unit = { //注意文件的编码格式,如果编码格式不对,那么读取报错 val file: Buffere ...
- h5标签
1.<abbr> 标签指示简称或缩写,比如 "WWW" 或 "NATO". IE 6 或更早版本的 IE 浏览器不支持 <abbr> 标 ...
- Mac版Mysql Workbench不展示Schema
Mac版的Mysql Workbench会不展示Schema,如下图 操作如下 cd ~/Library/Application\ Support/MySQL/Workbench/ rm wb_sta ...
- F2eTest和uirecorder自动化测试环境部署填坑记录
坑1:尝试部署的时候只在opennode.bat里面填写了两个浏览器,测试通过后再增加其他浏览器,页面上一直不显示. 填坑:需要清空数据库里的`wd_browsers`和`wd_nodes`表,然后重 ...