首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向surround.vim添加erb wrap

向surround.vim添加erb wrap
EN

Stack Overflow用户
提问于 2013-05-26 06:27:40
回答 4查看 1.1K关注 0票数 1

我正在尝试编辑我的surround.vim文件,以映射用于添加erb标签的快捷键。下面是我引用的stackoverflow帖子:

VIM: insert empty ERB tags

我使用的是包含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的要点上)

代码语言:javascript
复制
  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行附近的某个地方。

代码语言:javascript
复制
let b:surround_{char2nr('=')} = "<%= \r %>"
let b:surround_{char2nr('-')} = "<% \r %>"

到目前为止,我尝试将它添加到几个地方,然后在VIM中关闭并重新打开一个文件,然后是"cntl-s,=“,到目前为止还没有成功。有什么建议吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-05-26 07:38:17

创建文件~/.vim/after/ftplugin/erb.vim并添加以下行:

代码语言:javascript
复制
let b:surround_{char2nr('=')} = "<%= \r %>"
let b:surround_{char2nr('-')} = "<% \r %>"

另一种方法是使用autocmd来激活环绕映射,我倾向于使用~/.vim/after/目录,而不是用特定于文件类型的设置来弄乱我的~/.vimrc

票数 3
EN

Stack Overflow用户

发布于 2013-05-26 07:27:23

不,您不应该将这两行代码添加到插件的(surround.vim)源代码中。您应该将它们添加到您的vimrc中。

如果你想要你的- and =在你做环绕时对所有的文件类型做<% \r %><%= \r %>,(例如yss-yss=)。

你只需添加

代码语言:javascript
复制
let g:surround_{char2nr('=')} = "<%= \r %>"
let g:surround_{char2nr('-')} = "<% \r %>"

给你的vimrc。请注意,它们是全局(带有g:前缀)变量。

如果只想让定制的- and =适用于特定的文件类型,可以创建一个autocmd并设置缓冲区范围变量(使用b:,与问题中的两行相同)

我对红宝石世界并不熟悉。假设您想要在周围使用的文件类型是erb,您可以在您的vimrc中:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2013-05-26 07:29:30

我想,欢迎来到Vim!

永远不要编辑插件源文件,它总是错误的。

当你需要定制你的设置时,你的vimrc文件就是它的位置。键入:h vimrc-intro以了解更多信息。

在surround.vim的情况下,文档声明

以下代码在PHP文件中的"-“(ASCII45)上添加了一个潜在的替换项。(...)回车符将替换为原始文本。

autocmd FileType php let b:surround_45 = "“

这意味着您需要将以下条目添加到vimrc文件中。出于您的目的,这意味着您需要添加以下行

代码语言:javascript
复制
autocmd FileType erb let b:surround_{char2nr('=')} = "<%= \r %>"
autocmd FileType erb let b:surround_{char2nr('-')} = "<% \r %>"

添加到vimrc文件中。您的vimrc文件位于~/.vimrc (如果您使用的是Windows,则为$HOME\_vimrc )。

重新启动Vim,就可以开始工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16754463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档