我正在尝试编辑我的surround.vim文件,以映射用于添加erb标签的快捷键。下面是我引用的stackoverflow帖子:
我使用的是包含Surround.vim的VIM包https://github.com/spf13/spf13-vim
stackoverflow帖子上回答说有一个文件位于"~/.vim/after/ftplugin/erb.vim“
因为我使用的是包,所以我的文件结构不同,所以我深入研究并找到了这个"~/.vim/bundle/vim-surround/plugin/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,=“,到目前为止还没有成功。有什么建议吗?
发布于 2013-05-26 07:38:17
创建文件~/.vim/after/ftplugin/erb.vim并添加以下行:
let b:surround_{char2nr('=')} = "<%= \r %>"
let b:surround_{char2nr('-')} = "<% \r %>"另一种方法是使用autocmd来激活环绕映射,我倾向于使用~/.vim/after/目录,而不是用特定于文件类型的设置来弄乱我的~/.vimrc。
发布于 2013-05-26 07:27:23
不,您不应该将这两行代码添加到插件的(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()发布于 2013-05-26 07:29:30
我想,欢迎来到Vim!
永远不要编辑插件源文件,它总是错误的。
当你需要定制你的设置时,你的vimrc文件就是它的位置。键入:h vimrc-intro以了解更多信息。
在surround.vim的情况下,文档声明
以下代码在PHP文件中的"-“(ASCII45)上添加了一个潜在的替换项。(...)回车符将替换为原始文本。
autocmd FileType php let b:surround_45 = "“
这意味着您需要将以下条目添加到vimrc文件中。出于您的目的,这意味着您需要添加以下行
autocmd FileType erb let b:surround_{char2nr('=')} = "<%= \r %>"
autocmd FileType erb let b:surround_{char2nr('-')} = "<% \r %>"添加到vimrc文件中。您的vimrc文件位于~/.vimrc (如果您使用的是Windows,则为$HOME\_vimrc )。
重新启动Vim,就可以开始工作了。
https://stackoverflow.com/questions/16754463
复制相似问题