fun do(){
cursor } 这种效果呢? 问了 chatgpt ,方案好像没有没有效果。 麻烦大佬指点一下。
1
DTCPSS 2023-03-14 20:35:15 +08:00
o
|
2
DTCPSS 2023-03-14 20:36:10 +08:00
抱歉,看错了
|
3
TK4E 2023-03-14 21:14:07 +08:00
设置下快捷键就好了呀 大概这样
map('n', 'N', 'i<CR>') |
4
EyebrowsWhite 2023-03-14 22:02:17 +08:00
neovim 我用这个插件,https://github.com/windwp/nvim-autopairs ,vim 应该也有类似的,你可以找找
|
5
nightwitch 2023-03-14 22:17:32 +08:00 via Android
i ,回车
|
6
Mbb38C3HtyZydTt7 2023-03-14 23:04:29 +08:00
好问题,我之前在使用 helix 的时候也遇到了这个问题。解决方法就是定位到 `{` 或 `}`,然后在 `a` 或者 `i` 吧,这样肯定不能说是快速。可能 vim 会有专用的快捷键。如果经常使用的话, 建议按照上面的设置快捷键。
|
7
wizardyhnr 2023-03-14 23:35:18 +08:00
最近在搞 Python 语法输入写 Rust 。
你这个可以加大概如下到 vimrc ,记忆不一定准确,就是把你的输入按键映射到:<CR> inoremap :<CR> {}<ESC>hi<CR> |
8
DrakeXiang 2023-03-15 00:52:57 +08:00
我觉得这种不算是痛点,空闲又好用的键去绑定个组合的话浪费了,如果多个键去组合实现的话实际上还是按了多次键,感觉没有质的提升,要实在受不了那就直接用 snippet 插件,我的话手动回车,或者直接开始写,一行写完保存的时候自动格式化
|
9
jeesk OP 参考前面大佬们的回复:
map <F5> i<CR><CR><ESC><CAPS>o {cursor} 当光标在花括号里面的时候,首先执行插入模式,然后执行 2 次换行,在退出。这个时候我想执行 shift + o, 向上换行? shift +o ,如何放到 map 映射里面? |
10
pkokp8 2023-03-15 02:49:24 +08:00
我会绑定普通模式下,0 是行首,9 是行尾
所以我的操作是 esc (如有必要),9 ,i ,enter |
12
qwq11 2023-03-15 05:51:49 +08:00 via Android
有空格就放空格上面 r<CR>
没空格就只能老老实实 i<CR><ESC> |
13
hxy100 2023-03-15 08:04:46 +08:00
尝试在 ~/.vimrc 中加入以下代码,实现单、双引号自动补齐,小括号、大括号、中括号自动补全
------ " 括号自动补全 inoremap ( ()<Esc>i inoremap [ []<Esc>i inoremap { {<CR>}<Esc>O autocmd Syntax html,vim inoremap < <lt>><Esc>i| inoremap > <c-r>=ClosePair('>')<CR> inoremap ) <c-r>=ClosePair(')')<CR> inoremap ] <c-r>=ClosePair(']')<CR> inoremap } <c-r>=CloseBracket()<CR> inoremap " <c-r>=QuoteDelim('"')<CR> inoremap ' <c-r>=QuoteDelim("'")<CR> function ClosePair(char) if getline('.')[col('.') - 1] == a:char return "\<Right>" else return a:char endif endf function CloseBracket() if match(getline(line('.') + 1), '\s*}') < 0 return "\<CR>}" else return "\<Esc>j0f}a" endif endf function QuoteDelim(char) let line = getline('.') let col = col('.') if line[col - 2] == "\\" "Inserting a quoted quotation mark into the string return a:char elseif line[col - 1] == a:char "Escaping out of the string return "\<Right>" else "Starting a string return a:char.a:char."\<Esc>i" endif endf |
15
jiekeop 2023-03-15 11:02:12 +08:00
@hxy100 是不是贴错了一些,我放进去输入一个" 提示报错
=QuoteDelim('"') Error detected while processing function QuoteDelim: line 3: E114: Missing quote: "\" Press ENTER or type command to continue |
16
zhuisui 2023-03-15 11:41:28 +08:00
我的快捷键 `nnoremap <Leader>o o<ESC>`
不论是在哪个字符位置, 直接下面起一行 |
17
hxy100 2023-03-15 12:46:04 +08:00
@jiekeop 确实少了一行,在最上面加上下面这行即可:
set nocompatible -------- 另:github gist 我也传了一份,现在已测试过单独加载这个.vimrc 配置文件没问题 https://gist.github.com/hexiyou/fef4060308a7f7ad3f04d10c9f392e5f |
18
timothyye 2023-03-15 21:00:39 +08:00
大写 O 就行
|