Vim 党 书写括号的正确方式是什么

2017-02-20 16:23:24 +08:00
 miaoxia

从开始写代码的时候,老师就教如果写括号,要先写括号,再写括号里面的内容

例如下面的代码:

普通的 text 的书写顺序是:(<-代表左箭头,->代表右箭头)

在 Vim 的书写顺序是什么呢? 这是我的写法 感觉好复杂- -

5291 次点击
所在节点    程序员
33 条回复
TJT
2017-02-20 21:09:10 +08:00
@loryyang 你可以试一下去写 Lisp :D
chemzqm
2017-02-20 21:50:00 +08:00
iRiven
2017-02-20 22:06:28 +08:00
同问
noclyt
2017-02-20 23:21:58 +08:00
天哪, VIM 打个括号竟然这么麻烦! Emacs 围观 ing
ywt474000158
2017-02-20 23:29:19 +08:00
习惯之后感觉会记得没闭合的括号吧, 难道是我写的都太简单了...
pysama
2017-02-21 00:24:57 +08:00
自动补全配置,输入左括号自动补全后括号,并进入 insert 模式

" 括号自动补全
func! AutoClose()
:inoremap ( ()<ESC>i
:inoremap " ""<ESC>i
:inoremap ' ''<ESC>i
:inoremap { {}<ESC>i
:inoremap [ []<ESC>i
endf

不谢~
pysama
2017-02-21 00:26:29 +08:00
哦,还得补上这个执行语句:
``` 
au FileType php,c,python,javascript,html,css exe AutoClose()
```
Immortal
2017-02-21 09:18:59 +08:00
已经脱离纯 vim 了
一直是 idea+vim 插件的方案
idea 下的 vim 操作还是相对接近原生 也有自己的可配置文件
又能使用 idea 这类 ide 带来的便利
SpaceVim
2017-02-21 13:22:40 +08:00
何不尝试 SpaceVim.
SpaceVim 主页 https://spacevim.org
SpaceVim 文档 https://spacevim.org/documentation

当然你也可以看这篇博客,如何打造一个 Java IDE

http://spacevim.org/use-vim-as-a-java-ide/
flniu
2017-02-21 13:25:15 +08:00
在 Vim 下一直习惯先打开括号、打完内容、再打闭括号。`set showmatch` 之后,漏打多打闭括号都不太可能。
autoclose 类的插件没有用过。如果能做到 idea 系的效果也是不错的:输入开括号时自动在光标后添加闭括号,若手工再输入闭括号则自动覆盖(相当于向右移动光标)。这样在关注括号里内容时可以省略输入闭括号,在需要输入括号后内容时可以最大限度避免思路中断。
iEverX
2017-02-21 17:23:37 +08:00
忘了从哪个博客里看到的,用的挺顺手的

inoremap ( ()<esc>i
inoremap ) <c-r>=ClosePair(')')<cr>
inoremap [ []<esc>i
inoremap ] <c-r>=ClosePair(']')<cr>
inoremap { {}<esc>i
inoremap } <c-r>=ClosePair('}')<cr>
inoremap (<cr> (<cr>)<esc>O
inoremap [<cr> [<cr>]<esc>O
inoremap {<cr> {<cr>}<esc>O

function! ClosePair(char)
if getline('.')[col('.')-1] == a:char
return "\<Right>"
else
return a:char
endif
endfunction
waruqi
2017-02-21 18:21:37 +08:00
写个括号。没必要整的这么复杂吧。。直接顺序手打 ( . ) 下就行了。。
JamesRuan
2017-02-21 20:05:53 +08:00
谁让你们一开始就把括号闭起来的啦,最后闭合一点问题都没有。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/341799

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX