我正在尝试编辑我的surround.vim文件,以映射添加erb标记的快捷键。这是我所指的stackoverflow帖子:
我正在使用此VIM包https://github.com/spf13/spf13-vim,其中包含Surround.vim
stackoverflow帖子上的答案说有一个文件位于“〜/ .vim / after / ftplugin / erb.vim”
由于我使用的是捆绑包,因此我的文件结构不同,我通过挖掘并能够找到它 “〜/的.vim /束/ VIM-环绕/插件/ surround.vim”
该文件显示以下代码部分:(完整代码位于https://gist.github.com/lando2319/5650746的要点上)
elseif exists("b:surround_".char2nr(newchar))
let all = s:process(b:surround_{char2nr(newchar)})
let before = s:extractbefore(all)
let after = s:extractafter(all)
elseif exists("g:surround_".char2nr(newchar))
let all = s:process(g:surround_{char2nr(newchar)})
let before = s:extractbefore(all)
let after = s:extractafter(all)
elseif newchar ==# "p"
let before = "\n"
let after = "\n\n"
elseif newchar ==# 's'
let before = ' '
let after = ''
elseif newchar ==# ':'
let before = ':'
let after = ''
如果我理解正确的话,我需要将下面的代码添加到我的surround.vim文件的某个地方,我相信在第151行附近。
let b:surround_{char2nr('=')} = "<%= \r %>"
let b:surround_{char2nr('-')} = "<% \r %>"
到目前为止,我尝试将其添加到几个地方然后关闭并重新打开VIM中的文件,然后“cntl-s,=”到目前为止没有运气。有什么建议吗?
答案 0 :(得分:3)
创建文件~/.vim/after/ftplugin/erb.vim
并添加以下行:
let b:surround_{char2nr('=')} = "<%= \r %>"
let b:surround_{char2nr('-')} = "<% \r %>"
另一种方法是使用autocmd
来激活环绕声映射。我更倾向于使用~/.vim/after/
目录,而不是使用特定于文件类型的设置来混淆~/.vimrc
。
答案 1 :(得分:1)
不,你不应该将两行添加到插件的(surround.vim)源中。你应该把它们添加到你的vimrc中。
如果您想要周围的所有文件类型- and =
<% \r %>
和<%= \r %>
,(例如yss-
或yss=
)。
您只需添加
let g:surround_{char2nr('=')} = "<%= \r %>"
let g:surround_{char2nr('-')} = "<% \r %>"
到你的vimrc。请注意它们是全局的(带有g:
前缀)变量。
如果您只是希望自定义的- and =
适用于某种文件类型,则可以创建autocmd
并设置缓冲区范围变量(使用b:
,与问题中的两行相同)
我不熟悉红宝石世界。假设你要使用周围的文件类型是erb
,你可以在你的vimrc中:
fun! AutoCmd_ERB()
"do some other settings/mappings for your ERB, if you have
"......
"the customized surrounding :
let b:surround_{char2nr('=')} = "<%= \r %>"
let b:surround_{char2nr('-')} = "<% \r %>"
endf
autocmd FileType erb call AutoCmd_ERB()
答案 2 :(得分:0)
我想,欢迎来到Vim!
永远不要编辑插件源文件,总是错误的。
每当您需要自定义设置时,您的vimrc文件就会发生。输入:h vimrc-intro
了解详情。
对于 surround.vim ,文档说明
以下内容在PHP文件中添加了“ - ”(ASCII 45)的替换。 (...)回车将被原始文本替换。
autocmd FileType php let b:surround_45 = "<?php \r ?>"
这意味着您需要将以下条目添加到vimrc文件中。出于您的目的,这意味着您需要添加行
autocmd FileType erb let b:surround_{char2nr('=')} = "<%= \r %>"
autocmd FileType erb let b:surround_{char2nr('-')} = "<% \r %>"
到你的vimrc文件。您的vimrc文件位于~/.vimrc
(如果您使用的是Windows,则为$HOME\_vimrc
。)
重启Vim,你就可以开始工作了。
答案 3 :(得分:0)
如果它对任何人都有帮助,对我来说,它改变了名称来自&#34; erb.vim&#34; to&#34; eruby.vim&#34;在〜/ .vim / after / ftplugin。