标签: vim-plugin

NERDTree在Windows 7(x64)上导致gvim(v7.3)出现问题

当我在vimfiles\plugin\区域中安装NERDTree.vim后尝试打开时,GVim会报告很多错误.

我得到很多错误屏幕,第一个屏幕的前几个错误如下---

Error detected while processing .....vimfiles\plugin\NERD_tree.vim:
line    4:
E477: No ! allowed: <!DOCTYPE html>
line    5:
E488: Trailing characters: <html>
line    6:
E488: Trailing characters:   <head>
line    7:
E488: Trailing characters:     <meta charset='utf-8'>
line    8:
E488: Trailing characters:     <meta http-equiv=
line    9:
E488: Trailing characters:         <title>plugin/NERD_tree.vim at master from scrooloose/nerdtree - GitHub</title>
Run Code Online (Sandbox Code Playgroud)

windows vim vim-plugin

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

Vim插件:EasyMotion - 好的还是坏的做法?

我是一个插件爱好者,除了学习Vim编辑器的时间外,我也尽力掌握它的插件.但是,如果一个插件强迫我忘记了Vim特有的习惯和命令,我通常会尽量避免它们.

这让我想到了EasyMotion的主题.
该插件围绕视觉导航的概念,并为用户提供了几个用户可以跳转的视觉文本标签.

现在我得到的是:这是一个好习惯吗? 因为它确实让我觉得它试图取代一些非常基本的Vim技能和习惯.例如:

  • 编写快速搜索查询和正则表达式
  • 练习与边界跳跃的眼睛协调(例如4w,2E,14j)

由于这种不确定性,这是我已经避免使用的单个安装插件,尽管这种讨论可以在某种程度上轻松应用于大多数插件.

vim plugins vim-plugin

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

Vimscript:如何将变量/ float传递给字符串?

阅读有关Vimscript的手册后,我想创建自己的Vim脚本.

我认为在Vim中使用维基百科的黄金比例分割窗口会很好.

当您在vsplit中切换到另一个窗口时,您将获得黄金比例.为此,我创建了这个Vimscript.

function! GoToLeftWindow()
    execute "vertical resize 109"  
    execute "wincmd h"
endfunction

function! GoToRightWindow()
    execute "vertical resize 109"  
    execute "wincmd l"
endfunction

function! CreateNewWindow()
    execute "vsplit"  
    execute "wincmd h"
    execute "vertical resize 109"  
    execute "wincmd l"
endfunction


nnoremap <A-n> :call CreateNewWindow()<CR>
nnoremap <silent> <left> :call GoToLeftWindow()<CR>
nnoremap <silent> <right> :call CurrentWin()<CR>
Run Code Online (Sandbox Code Playgroud)

所以,当我有垂直窗口时,我从一个窗口切换到另一个窗口,我将始终在活动窗口中显示黄金比例.听起来不错.:)

但我注意到,当我在不同的台式机上工作时,不同的分辨率,黄金比例已经消失.为了防止这种情况,我决定让Vim计算黄金比例.因此,在每个具有不同字体大小的系统上,您将始终拥有黄金比例.

为了实现这一点,我学习了更多关于Vimscript的知识,并创建了这个计算:

function! GoToRightWindow()
     let curWin= winwidth(0)
     lockvar curWin
      let golden_ratio = 1.618
      let result = curWin / golden_ratio
      let ratio = curWin - result …
Run Code Online (Sandbox Code Playgroud)

vim vim-plugin

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

Vim片段,没有片段/模板插件

我经常使用vim,但是我的工作流程通常会迫使我与其他IDE进行交互,所以我不是一个像神一样的vim poweruser,也不是我想要的.Vim不是我的IDE,也不是我想要的.它是一个快速而轻巧的编辑器,不会妨碍我.

我正在寻找简单的使用和配置,而不是超级功率或金星效率.

到目前为止,我一直在使用我的代码段预加载几个寄存器,然后保留一个备忘单,其中哪个寄存器具有哪个文本块.但是我的寄存器用完了,一个字母数字字母并没有立即提醒我我预装的是什么.

存储任意数量的原始文本块的最简单方法是什么,然后使用单个关键字和1个热键(按任意顺序:关键字<>热键)检索它们.

  • 我不需要语言识别片段(聪明的关键字将是我的解决方案)
  • 我不需要具有上下文感知或任何方式智能的片段
  • 我不打算使用迷你模板语言来简化我的片段,这太过分了.
  • 我的片段应该直接粘贴在他们定义的原始文本中,没有其他内容.

我想我可以开始编写仅仅将文本块打印到当前缓冲区的命名函数.这几乎是我所需要的,但我希望有一种更简单的方法来维护/更新我的代码段集合.


是否有任何覆盖我的用例的极简主义插件,或者我是否需要坚持我的.vimrc/python-commands方法?

次要更新 我没有意识到你可以用mapleader链接这么多字母,这可能提供我需要的魔力.然后我仍然需要别名回到一些更大的函数集(可能使用python来定义命令).

vim vim-plugin

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

Vim:w按子词移动

什么是重新映射的最佳方法w/ W停在中间sub_wordssubWords

我安装了一些文本对象,但我映射wvav<esc>(选择下一个子词并取消选择)并没有让我到任何地方.

救命.

vim vim-plugin

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

关于Vim的递归映射

这是编写vim插件的实践代码.我按照vim文档编写它::help usr_41.txt第41.11节写一个插件.

let s:save_cpo = &cpo
set cpo&vim

if exists("g:loaded_echoplugin")
  finish
endif

function s:EchoWord()
  echo expand('<cword>')
endfunction

if !exists(":EchoWord")
  command -nargs=0 EchoWord :call s:EchoWord()
endif

if !hasmapto('<Plug>EchoWord')
  map <F8> <Plug>EchoWord
endif

noremap <script> <Plug>EchoWord <SID>EchoWord
noremap <SID>EchoWord :call <SID>EchoWord()<CR>

let g:loaded_echoplugin = 1

let &cpo = s:save_cpo
unlet s:save_cpo
Run Code Online (Sandbox Code Playgroud)

代码用于在单击时显示光标下的单词<F8>.这是映射序列:<F8> -> <Plug>EchoWord -> <SID>EchoWord -> :call <SID>Echoword()它可以工作.

然而,在这里,我有两个问题:
1.我使用过noremap这里,为什么它仍然能够重映射递归映射
2.如果我改变从映射map <F8> <Plug>EchoWordnoremap <F8> <Plug>EchoWord,它会做 …

vim vim-plugin

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

删除插件中定义的函数

我刚刚安装了ntpeters/vim-better-whitespace插件,它定义了一个EnableWhitespace函数,因为我习惯于打字,所以非常烦人:E来获取资源管理器,现在存在冲突(模糊地使用用户定义的命令).

有没有办法在我的vim.rc文件中删除此函数(即一些神奇的'unbind_function EnableWhitespace')并保持插件代码完好无损?

该插件还提供了ToggleStripWhitespaceOnSave,因此我不会错过任何功能.

提前致谢.

vim vim-plugin

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

如何永久启用Vim帮助的行号

我想在vim中永久显示行号,不仅适用于常规文本类型文件,也适用于帮助文件.

添加set number到vim(~/.vimrc)的主配置文件中,如vim行号中所示 - 默认情况下如何启用它们?,对我的帮助文件没有任何影响.

那么我在哪里应用适当的配置更改?

vim configuration-files line-numbers vim-plugin

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

移动到vim中第一行的非空白字符

我在移动到vim中第一行的非空白字符时遇到了一些麻烦.

此操作的通常映射是^,但在我的键盘中,重音位于数字6键,因此我必须按Shift + 6才能获得它.

正如预期的那样,Shift + 6不会将我带到NORMAL模式下行的第一个非空白字符,它只是打印^我的光标所在的位置,然后按下任何其他键后^消失,我又回到了我以前在哪里

我一直试图将这个动作映射到其他一些快捷方式一段时间,但没有运气.我也尝试了类似的东西nmap <S-6> ^,但它没有奏效.

有人也遇到过这个问题吗?我用Google搜索,但似乎无法找到遇到同样问题的人.

这是该快捷方式的VIM 文档,我还想指出我正在使用苹果魔术键盘,将"US International - PC"设置为输入法.

vi vim editor nmap vim-plugin

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

如何在vimscript或UltiSnips中扩展当前文件名而不使用'test'

我正在编写一个片段,我需要在vimscript中获取当前文件名.我可以高兴地做到这一点expand('%:t:r')(如图所示这里).但是,我不仅要从文件名中排除'.js',还要排除'.test'.

例如

如果在myName.test.js,我想抓住'myName'

如果在myName.js,我也想抓住'myName'

我这样做是为了创建一个UltiSnips片段,所以其他方法(例如正则表达式)也很有用

regex vim vim-plugin ultisnips

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