小编ib.*_*ib.的帖子

Vim:Ruby和HTML omnicomplete没有显示本地方法/变量

希望有人可以通过Ruby和HTML在Vim中使用omnicomplete来解决一些非常不稳定的行为.

问题是Ctrl+ X Ctrl+ O似乎只返回非本地命令.方法和变量名称被省略.如果我输入Ctrl+ X Ctrl+,P它们会按预期显示,但omni只是没有提取它们.

一些东西:

  • --version确认Ruby in installed(+ruby)
  • 我安装了rails.vim,snipmate和supertab - 这些是我能想到的唯一安装的插件,可能会搞乱ruby omnifunc
  • HTML omni也有同样的问题
  • Php和Python omni仍然可以正常工作
  • 我已经尝试删除下面的HTML和Ruby相关部分,但没有区别 - 行为是一样的

.vimrc下面 - 任何帮助非常感谢

" Set backup directory so that .swp files aren't stored in work folders
set backup
set backupdir=$HOME/temp/vim_backups/
set directory=$HOME/temp/vim_swp/

filetype on
filetype off

call pathogen#runtime_append_all_bundles()

syntax on
filetype plugin indent on

" Necessary for lot of cool vim things
set nocompatible …
Run Code Online (Sandbox Code Playgroud)

html ruby vim autocomplete

7
推荐指数
1
解决办法
3908
查看次数

自定义Vim HTML语法

我有一个脚本,它读取HTML文件并用~%foo%~Perl设置的值替换出现的内容.像这样的东西:

<span class="~%classname%~">~%hi_mom%~</span>
Run Code Online (Sandbox Code Playgroud)

会在浏览器中产生这样的东西:

<span class="classyclass">Hello World</span>
Run Code Online (Sandbox Code Playgroud)

是的,所以我想使用Vim语法高亮来区分~%foo%~HTML中的出现.默认情况下,HTML语法突出显示将生成HTML元素的属性值Magenta,我希望该~%foo%~部分是DarkMagenta.我在正确的轨道上,因为如果我注释掉tokenQuoted线(或标记线),我会得到所需的结果,但是两个匹配和突出显示未注释,令牌突出显示会覆盖tokenQuoted突出显示.

syntax match token       containedin=ALLBUT,htmlString,htmlValue '\~%[^%]\+%\~'
syntax match tokenQuoted containedin=htmlString,htmlValue        '\~%[^%]\+%\~'
" tokenQuoted assumes htmlString/htmlValue (:highlight String) is Magenta
highlight token          term=none ctermfg=White       guifg=White
highlight tokenQuoted    term=none ctermfg=DarkMagenta guifg=DarkMagenta
Run Code Online (Sandbox Code Playgroud)

我正在使用的文件是在默认html.vim通过 autocmd *.html ~/.vim/syntax/html.vimin 来源后获取的.vimrc.

html vim syntax-highlighting vim-syntax-highlighting

7
推荐指数
1
解决办法
690
查看次数

如何在Visio中读取Shape的属性

我有以下任务.我正在Studio 2010中的C#上为Visio 2010编写一个加载项.假设我打开了一个图表.我在这个图中有任何形状的形状(让我们尝试管理一个开头的形状).问题是如何阅读这种形状的任何属性?我应该使用哪种API?

基本算法:

  1. 扫描打开的文档以获取形状
  2. 如果文档中有任何形状,则返回所有形状的数组(或列表)(如果当前文档中没有形状,则返回null)
  3. 运行形状数组并读取每个元素的任何属性(这将很有可能写入/修改属性)

(代码示例将不胜感激)

c# visio shape

7
推荐指数
1
解决办法
1万
查看次数

突出显示Vim中的搜索但不是替换?

我知道可以阻止Vim突出显示任何搜索,但有没有办法让它在常规搜索中突出显示,但不是,例如,替换?

我经常会突出显示一段文字然后执行以下操作:

:s/^/#/
Run Code Online (Sandbox Code Playgroud)

评论整个街区.但后来我的屏幕左侧有一个丑陋的黄色条,我:noh每次都要清除它.

我希望突出显示继续定期/搜索.这可能吗?

vim

7
推荐指数
1
解决办法
617
查看次数

当数组的长度不为空时,出现“恐慌:运行时错误:索引超出范围”

我很难学习如何在 Go 中循环遍历一个字符串来做一些事情(特别是分离单词而不是包含元音)。

我写了这个代码片段:https : //play.golang.org/p/zgDtOyq6qf

这是我运行时遇到的错误:

panic: runtime error: index out of range

goroutine 1 [running]:
panic(0x1045a0, 0x1040a010)
    /usr/local/go/src/runtime/panic.go:500 +0x720
main.myFunc(0x114130, 0x4, 0x0, 0x0, 0x0, 0x3ba3)
    /tmp/sandbox960520145/main.go:19 +0x1a0
main.main()
    /tmp/sandbox960520145/main.go:10 +0x40
Run Code Online (Sandbox Code Playgroud)

我在这个论坛里搜了一下,有人说是数组长度的原因,但是这里不是这样的。我不知道如何解决这个问题。有人可以建议吗?

arrays string compiler-errors string-length go

7
推荐指数
2
解决办法
3万
查看次数

用于Python的Vim语法突出显示'else:'

我对Vim中默认的python语法突出显示感到恼火.

它没有else:正确地突出声明.如果我else和冒号之间有一些空格,Vim只会突出显示else语句:,所以else :有效,但else:没有.

它必须易于修复.

我正在使用Vim 7.2

python vim syntax-highlighting vim-syntax-highlighting

6
推荐指数
2
解决办法
3122
查看次数

SnipMate与病原体

我刚刚安装病原体~/.vim并添加新的命令运行包

:call pathogen#infect() 
Run Code Online (Sandbox Code Playgroud)

我已经添加到我的~/.vim/bundle文件夹vim-surround和NERDtree,一切都很棒.然而,当我试图添加garbas SnipMate时它没有用.有人可以帮忙解决这个问题吗?谢谢

vim snipmate pathogen

6
推荐指数
2
解决办法
4721
查看次数

如何一次在整个文件中折叠到 Vim 中的特定级别?

我想在 Vim 中按下一个按钮并折叠所有代码,以便只显示特定(和可变)缩进级别的代码。例如,当我只想查看方法名称而不是缩进的例程时,这非常有用。

Vim: Fold top level folds only ”问题有一个缩进级别的解决方案,但每次更改级别时都需要设置环境。

当我的光标处于缩进级别(比如级别 2)时,我希望整个文件在所有方法中都折叠到该缩进级别。

这是否内置于 Vim 的某个地方?有谁知道一个很好的插件可以做到这一点?

vim

6
推荐指数
1
解决办法
1368
查看次数

Vim:在基于游标下角色的函数中做一些事情?

我正在编写一个在LaTeX中编辑特定环境的函数.

环境基本上是这样的:

\begin{quicktikz}
    ...some stuff...
\end{quicktikz}
Run Code Online (Sandbox Code Playgroud)

或者像这样:

\begin*{quicktikz}
    ...some stuff...
\end{quicktikz}
Run Code Online (Sandbox Code Playgroud)

我想编写一个在环境中调用时在两者之间切换的函数.由于我的Vim知识不是全部,我想出一个简单的解决方案:

  1. 获取光标位置 let save_cursor=getpos(".")
  2. 向后搜索\begin{quicktikz}使用:?\\begin{quicktikz}\|\\begin\*{quicktikz}
  3. 搜索{并向左移动:normal 0f{h
  4. 检查光标下的项目是否等于 *
    • 如果确实如此 normal x
    • 如果不这样做的话 normal a*<esc>
  5. 使用恢复光标位置 call setpos('.',save_cursor)

除了步骤3之外,我知道如何完成所有这些操作.如何检查光标下的字符是否等于*

如果您知道更好的方法,欢迎分享这一点.

vim cursor

6
推荐指数
1
解决办法
2161
查看次数

Vim autocmd(保存文件,运行代码格式化程序,重新加载文件)

我希望将源代码格式化程序Uncrustify与Vim 集成.以下两个选项中的任何一个都足够了.

  1. 格式化我当前正在编辑的代码(即gq按下时).
  2. 保存文件时格式化代码,然后将格式化文件重新加载到当前Vim窗口.

选项1是优选的.我试过了

set formatprg=uncrustify\ -c ~/misc/uncrustify.cfg --no-backup
Run Code Online (Sandbox Code Playgroud)

即我用命令行选项调用Uncrustify.这不起作用.Vi给出了E518: Unknown option: ~/misc/uncrustify.cfg错误.

对于选项2,我在vimrc文件中尝试了以下内容

autocmd bufwritepost *.cpp ! ~/bin/uncrustify -c ~/misc/uncrustify.cfg --no-backup <afile>
Run Code Online (Sandbox Code Playgroud)

保存后文件格式化,但我必须手动将文件重新加载到Vim中.

vim uncrustify

6
推荐指数
1
解决办法
1419
查看次数