首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Vim中自动完成和格式化括号?

如何在Vim中自动完成和格式化括号?
EN

Stack Overflow用户
提问于 2018-03-26 16:12:12
回答 2查看 1.2K关注 0票数 0

我正在研究一本Java书,结果,我发现自己输入了很多花括号。考虑到我知道Vim有多强大,虽然我不是专家,但我一直在寻找方法让它为我处理支架。我偶然发现了autocmd的用法,并在.vimrc中添加了以下内容:autocmd FileType java inoremap <buffer> { {<CR><CR>}<Up><Tab>。我也试过一个普通的inoremap,但没有结果。

我现在为最高层的区块工作。然而,当我深入到任何块时,<Tab>似乎没有执行。其他的一切都如预期的那样运作。但是不管在那之后有多深,但是游标总是返回到方法级别的开头。我想是因为我告诉它要加一个标签。如何使制表符计数取决于深度?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-26 21:36:37

假设您设置了某种类型的自动缩进:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
augroup Java
    autocmd!
    autocmd FileType java inoremap <buffer> { {<CR>}<C-c>O
augroup END

你的版本是做什么的:

  1. 插入开口支撑,
  2. 插入换行符,
  3. 插入换行符,
  4. 插入关闭支撑,
  5. 将光标移到第1列,
  6. 插入标签。

您做得对:因为您只插入了一个选项卡,这只能使您达到缩进的第一个级别。

我的版本是这样的:

  1. 插入开口支撑,
  2. 插入换行符,
  3. 插入关闭支撑,
  4. 退出插入模式而不触发自动命令,
  5. 在当前行上方打开一条新行。

:help O尊重您的自动缩进设置,因此它将在正确的缩进级别进入插入模式。

或者,您可以这样修改您的版本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
augroup Java
    autocmd!
    autocmd FileType java inoremap <buffer> { {<CR><CR>}<C-c>S
augroup END

其中,将插入模式保留在大括号之间的空行上,并执行:help S以在右缩进级别进入插入模式。

剥那只猫皮有很多种方法。

票数 1
EN

Stack Overflow用户

发布于 2018-03-28 02:23:39

我建议让Vim使用它的内置Java模式。如果你加上

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
source $VIMRUNTIME/vimrc_example.vim

对于您的.vimrc,Vim将获取大量有用的缺省值,包括自动文件类型检测和格式化规则。您会发现,打开一个.java文件将为您提供您想要的大部分内容。

为了预测下一个问题,如果选项卡的宽度不是您想要的,请添加以下内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
autocmd FileType java setlocal shiftwidth=4

直到你的.vimrc结束。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49502515

复制
相关文章
vim中实现python代码自动完成功能
在/usr/share/vim/vim73/autoload目录中检查是否存在python3complete.vim或pythoncomplete.vim文件,如果存在,则直接在用户目录中.vimrc进行配置
用户9127725
2022/08/08
5320
vim设置大括号自动补全并换行缩进【工具】
一 在vim中,打出一个大括号后,自动补全另一个大括号并换行 鼠标定位在换行后缩进的位置
sinnoo
2020/11/13
2.5K0
vim设置大括号自动补全并换行缩进【工具】
Shell中的括号、双括号、方括号和双方括号
首先在Shell中,括号表示条件测试方法。主要用在if-then、case等需要条件判断的语句结构中。
week
2022/09/08
2.6K0
latex中的括号怎么打_小括号和中括号的简便算法
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
2.4K0
如何在 Vim 中复制,剪切,粘贴
Vim 以及它的前辈 Vi 在 macOS 和基本上所有的 Linux 版本上都预装了。在你喜欢的编辑器还没有安装的情况下,对 Vim 有一些基本了解是很有用处的。
雪梦科技
2020/05/11
41.2K0
如何在 Vim 中复制,剪切,粘贴
shell中的括号(小括号,中括号,大括号)
    ①命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。
雪影
2018/08/02
3.9K0
Linux Vim中自动补全Python
Pydiction 可以是我们使用Tab键自动补全Python代码在Vim,是一款非常不错的插件。
py3study
2020/01/08
2.1K0
JS-点和中括号
今天上午做一个很low的小练习,代码写完了想要封装重复利用来着 可是憋屈啊,怎么都不对,在document.style.width这里,想把width变成参数可是用点的话,会报错说找不到点后边这个属性 也是啊,点就是“的”的意思,点后边放一个abc代替,他当然会认为你要找style里边的abc属性啊。不妥,固不可、 听视频听到方括号这里,廓然打通了我的任督二脉,恍然大悟 可以用方括号代替啊! 其实这个用法还是很常见的,像dom二级事件里就要用到。 估计以后用方括号代替点来解决bug的时候还是很多的,虽然以前
xing.org1^
2018/05/17
2.2K0
启用 VIM 中的 Python 自动补
 此时, 按下 Ctrl+x, Ctrl+o, 就能看到提示列表框,以及对应的 docstring.
py3study
2020/01/09
9460
VS Code 中的自动完成
vscode 1.6.x 发布了,有一系列的新特性,我个人比较开心见到 ts/js 语法着色有提升,我还专门搞了个 issue 吐槽过这个。
IMWeb前端团队
2019/12/04
1.3K0
VS Code 中的自动完成
该文介绍了 vs code 中自动完成功能的概述、实现方式、使用方法和效果。
IMWeb前端团队
2017/12/29
1.8K0
VS Code 中的自动完成
Linux小技巧:如何在 Vim 中显示行号?
Vim 是一款出色的编辑器,大多数 Linux/UNIX 系统管理员每天都喜欢并使用它。
网络技术联盟站
2022/03/02
11.5K0
Linux小技巧:如何在 Vim 中显示行号?
Python|用“栈”的方法完成括号匹配
先遍历字符串把三对括号提出来,再利用‘栈’把左括号一个个的放入其中并且遍历到右括号立即进行匹配。匹配成功后删除‘栈’中的左括号并继续,匹配失败则返回‘False’.最后返回栈的长度,避免出现奇数个括号的错误。
算法与编程之美
2020/06/17
1.7K0
VSCode中Vue项目自动格式化
VSCode在开发Vue项目的时候,尽管我们安装了格式化插件,但是最终运行时还是会有一堆的警告,就是因为格式化代码的方式和eslint的规范不一样导致的。
码客说
2020/11/27
2.5K0
linux中vi和vim操作
vim可以看做是vi增强版,具有程序编辑能力,支持语法高亮,代码补全,编译及错误跳转等功能,因此被广泛使用
小小咸鱼YwY
2020/06/19
6.3K0
linux中vi和vim操作
gosublime golang 自动格式化和gosublime
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
hotqin888
2019/09/25
2K0
[日常] 正则表达式 小括号() 中括号[] 大括号{}
!preg_match('/^[a-zA-Z0-9]{2,16}$/') 只允许2~16位大小写字母及数字  
唯一Chat
2019/09/10
3.3K0
如何使用脚本完成CRC和填充值的自动完成
恩智浦的MPC架构的微控制器使用的开发环境IDE是S32DS ,该IDE使用的GNU GCC工具链没有提供对编译结果的CRC校验和自动生成工具,所以需要我们制作一个脚本自动生成和填充,脚本调用Srecord工具执行。
用户1605515
2023/10/25
5100
如何使用脚本完成CRC和填充值的自动完成
点击加载更多

相似问题

如何在vim中自动关闭括号?

10

如何在spyder中自动完成括号

10

Vim Ruby和Rails自动完成

11

括号,NetBeans中的括号自动完成

13

如何在vim中自动完成每个条件?

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文