当您使用:map命令而没有任何参数时,它似乎只列出自定义和插件绑定.有没有办法查看所有绑定?很高兴知道自定义绑定是否会与其中一个默认值冲突.
或者,是否有一个像样的在线参考?
最近我看到Gary Bernhardt展示了他用来从vim中执行Ruby代码的vim快捷方式.捷径是
:map ,t :w\|:!ruby %<cr>.
Run Code Online (Sandbox Code Playgroud)
似乎这个方法总是执行系统Ruby,在我的例子中是1.8.7.我对升级它犹豫不决,因为我听说更改System Ruby解释器会导致一些不稳定的问题.反正有没有让这个命令使用RVM目录的版本设置?
当我在MacVim中编写html时,我在Web浏览器中保持相同的文件打开,以便我可以检查html输出.我不喜欢这种方法的一个原因是我经常不得不离开vim,去浏览器,然后重新加载html以查看更新.是否有一个更优雅的解决方案与vim将动态更新html输出,因为它是在vim中输入的?我似乎记得Textmate可以这样做吗?谢谢.
更新:我找到了我想要记住的视频.你可以在这里找到它:
是否可以根据已经存在的缩进在Vim中标记块?与v {相似.
对于使用空白敏感语法(如Haskell和Python)编程语言非常有用.
例如,在此函数中标记第一个let和return之间的所有内容:
checkArg (com:arg) s d ns
| com == "add-source " = do
let s' = v ++ s
lift $ saveLinks s'
return (s', d)
| com == "remove-source" = do
let s' = filter (not . hasWord str) s
lift $ saveLinks s'
return (s', d)
Run Code Online (Sandbox Code Playgroud)
如果我:setf html在下面的示例中按预期工作(缩进匹配).
但是,我有以下代码(注意代码前的缩进),除了我有它:setf php.
| 是光标
<div class="sig">|</div>
Run Code Online (Sandbox Code Playgroud)
如果我点击进入,就会这样做
<div class="sig">
|</div>
Run Code Online (Sandbox Code Playgroud)
因为99%的时间我正在编辑php,模板文件中有html,我觉得切换很烦人.
我觉得vim必须有一种方法来读取标记,并且可能在一个文档中有多个文件类型(就像setf=html它可以读取样式标记或内联样式标记并且'知道',""中的那个小片段是一个css文件类型
我正在尝试使用"mvim"将我的rails项目打开到mvim(macvim).但是我收到以下错误.
? cs193p git:(master) mvim .
dyld: Library not loaded: /Users/myusername/.rvm/rubies/ruby-1.9.3-p125/lib/libruby.1.9.1.dylib
Referenced from: /usr/local/Cellar/macvim/7.3-64/MacVim.app/Contents/MacOS/Vim
Reason: image not found
[1] 85219 trace trap mvim .
? cs193p git:(master) mvim --version
dyld: Library not loaded: /Users/myusername/.rvm/rubies/ruby-1.9.3-p125/lib/libruby.1.9.1.dylib
Referenced from: /usr/local/Cellar/macvim/7.3-64/MacVim.app/Contents/MacOS/Vim
Reason: image not found
Run Code Online (Sandbox Code Playgroud)
我最近删除了RVM("rvm implode",其中包括ruby 1.9.3-p125)并重新安装了1.9.3-p194.我需要做些什么来解决这个问题?
谢谢
跳转与CtrlI我的Vim不起作用,但CtrlO有效.
这很奇怪,verbose map <c-i>或者verbose map <c-I>如下所示:
s <Tab> <Plug>snipMateNextOrTrigger
Last set from ~/.vim/bundle/vim-snipmate/after/plugin/snipMate.vim
x <Tab> >gv
Last set from ~/.vim/plugin/settings/Settings.vim
n <Tab> v>
Last set from ~/.vim/plugin/settings/Settings.vim
Run Code Online (Sandbox Code Playgroud)
当我按下时CtrlI,当前行将缩进,vim进入可视模式.
我试图添加unmap <c-i>到〜/ .gvimrc,但是当macvim启动时它失败了
Error detected while processing /Users/dfang/.vimrc:
line 83:
E31: No such mapping
Run Code Online (Sandbox Code Playgroud)
我怎样才能取回我的CtrlI,如何重新映射CtrlO到Ctrl-(从=键左侧)?
在大中型项目上工作时,我经常会在屏幕上看到很多分割,以及打开的几个标签,每个标签分为5-6个分割.通常我会为不同的目录和逻辑工作区使用不同的选项卡,将功能A上的工作与功能B上的工作或错误C和我的注释分开.

当你从NERDTree,Fugitive,Gundo和其他许多喜欢进行额外拆分的插件中进行大量额外拆分时,管理这种疯狂会成为一个问题.在这种辅助分割打开和关闭之后,整个设置的高度和宽度变化都会发生变化.我的意思是,一些窗口变小,有的成为比他们最初较大(我必须手动调整自己的高度和宽度与CTRL+W >和CTRL+W <和朋友.
通常用鼠标调整每个分割的速度更快,但它甚至不接近Vim方式.
有时我甚至想要交换一些分裂或向右移动.CTRL+W HJKL并不总是有帮助,因为他们踢得太远,再次扭曲尺寸.旋转CTRL+W r仅适用于简单情况.
你如何管理大量的缓冲区,分割和标签?
编辑:我看到有投票结束.这个问题对你来说似乎太笼统了,所以有一个更具体的问题:使用大量缓冲区和拆分的好工作流程是什么?(其中一个答案是在需要更多空间时将分割推广到单独的标签)
我正在开发一个 vim 插件,作为其中的一部分,我正在测试各种东西,例如“自动组”和事件,我可以在其中一般性地挂钩一些东西。当事情正在运行时,我正在使用使用命令输出各种调试消息的函数echom。问题是,一旦我想查看输出,我需要键入:message,然后继续按某个键,直到出现消息末尾,这样我才能看到最后一条消息是什么。
有解决方法吗?例如,是否有一个插件可以帮助我在单独的缓冲区内实时查看消息流?
谢谢。(OSX、MacVim)
当我进入插入模式时,vim显示-- INSERT --在我的状态栏下方(当然所有模式都会出现,只是显示一个例子):

鉴于我已经在我的状态栏中显示当前模式,有没有办法禁用这个-- INSERT --纯粹的美学?
我一直在帮助部分和谷歌潜水,但找不到办法.这是可能的,还是我应该学会忍受它?