如何让vim将光标放在新行开始的花括号内,即使用|表示光标位置:
class {
|
}
目前使用我的设置只会做这些
class {
|}
我在我的 .vimrc 文件中写了这个: set autoindent shiftwidth=2 tabstop=2 noexpandtab
基本上,我只想要和普通的 IDE 一样缩进。
更新:
我找到了如何使用 inoremap { {<CR>}<Esc>O
来实现这个功能。
如何让vim将光标放在新行开始的花括号内,即使用|表示光标位置:
class {
|
}
目前使用我的设置只会做这些
class {
|}
我在我的 .vimrc 文件中写了这个: set autoindent shiftwidth=2 tabstop=2 noexpandtab
基本上,我只想要和普通的 IDE 一样缩进。
更新:
我找到了如何使用 inoremap { {<CR>}<Esc>O
来实现这个功能。
我使用的是Ubuntu 12.04版本,但在我的Home目录下没有找到vimrc
文件。全局的vimrc
文件位于/etc/vim/vimrc
。
在这个文件中几乎什么都没有,因此我在/etc/vim/vimrc
文件末尾添加了以下三行代码就可以了:
set autoindent
set cindent
inoremap { {<CR>}<up><end><CR>
当您下次键入 {
时,它将被更改为组合键 {
、Enter、}
、up、end、Enter。 cindent
和 autoindent
将添加所需数量的制表符。
}
。请注意,您需要通过添加let delimitMate_expand_cr=1
到您的配置文件中来告诉delimitMate扩展换行符。imap <expr> <CR> pumvisible() ? neocomplcache#smart_close_popup() : '<Plug>delimitMateCR'
,两个插件都按照我想要的方式工作。 - bknolesdelimitMate
的expand_cr_1
功能出现了问题。取而代之的是,你可以使用imap <expr> <CR> pumvisible() ? "\<c-y>" : "<Plug>delimitMateCR"
。 - Yuriy Nemtsov将以下内容添加到你的 .vimrc 文件中:
imap <C-Return> <CR><CR><C-o>k<Tab>
假设autoindent
和smartindent
都已正确设置,那么在大括号之间键入Ctrl + Return
将把光标放在您想要的位置。imap <C-Return> <CR><CR><C-o>k<C-t>
。 - Jedidiah Hurtimap <C-Return> <CR><CR><C-o>k<S-s>
,其中 <S-s>
从正确的缩进级别开始插入。此外,我认为使用 inoremap
应该可以防止副作用。 - romainlimap <C-CR> <CR><C-o><S-o>
- Hielke Walingaautoindent
指的是它将当前缩进级别延续到后续行上。要根据语法进行缩进,您需要同时指定类似于smartindent
或cindent
的标志。
i
然后再按下 Return
,你能得到你想要的行为吗? - Justin Spahr-Summers我在我的.vimrc
文件中写了这个。
inoremap <expr> <CR> InsertMapForEnter()
function! InsertMapForEnter()
if pumvisible()
return "\<C-y>"
elseif strcharpart(getline('.'),getpos('.')[2]-1,1) == '}'
return "\<CR>\<Esc>O"
elseif strcharpart(getline('.'),getpos('.')[2]-1,2) == '</'
return "\<CR>\<Esc>O"
else
return "\<CR>"
endif
endfunction
Enter
完成代码完成确认,如果没有,则在输入Enter
时缩进{|}
。此外,它还提供了HTML标签自动缩进。class {|}
按下Enter
键,您将获得以下结果。
class {
|
}
<html>|<html>
Enter
键,你会得到结果。<html>
|
</html>
# vim: ts=2 sw=2 sts=2 sr noet st ai si
Dockerfile
:FROM centos-7
RUN ...
CMD ...
# vim: ts=2 sw=2 sts=2 sr noet st ai si
# vim: st ai si