最近我经常..vimrc.un~在我编辑文件的文件夹中找到一个命名的文件。这个文件从哪里来?
我使用的Vim 7.3的插件pathogen,nerdtree,vim-eunuch,vim-surround,vim-sparkup和vim-sensible。
注意:我问的原因是因为我还不知道是什么特定的组件导致了它。否则,我将能够深入挖掘或提出更具体的问题。
我正在尝试将一些命令映射到 vim 中的快捷方式。具体来说,我正在尝试获得一个彩色的 git diff。如果我在 Ex 模式下键入此命令,它会按预期工作:
:! git diff --staged % | colordiff | less -R
但是如果我尝试在我的 .vmirc 中映射它,
map ,gds :! git diff --staged % | colordiff | less -R<CR>
我收到错误:
E492: Not an editor command: colordiff | less -R<CR>
我有其他使用管道的映射命令就好了,所以这似乎不会导致问题。如果我通过完整路径调用 colordiff,它也无济于事。是什么赋予了?
因此,当我按下时,:set我会看到一堆不在我的~/.vimrc文件中的设置。(我猜他们是我几年前设置的设置,不记得了)。
所以我做了:version并得到了一条路径$VIM/vimrc,据说它被usr/share/vimrc. 这就是“系统 vimrc”。
我打开后一个路径,神秘的设置不在这个vimrc文件中。
唯一的其他路径是“用户 excrc 文件” $HOME/.exrc,我不知道如何到达或它是什么。
任何人都知道我命令时显示的设置:set来自哪里?
我在 OS X (10.6) 上。
根据vim文档,:silent可以使用该命令来避免hit-enter提示。
问题是我想让一个接受范围作为输入的命令静音,这不起作用,因为范围被传递给:silent而不是命令本身。
例子
要打开当前文件或选择中的 url,我在我的 中使用以下映射.vimrc:
noremap <leader>u :w !urlview<cr>
Run Code Online (Sandbox Code Playgroud)
where:w !urlview将当前文件或选择通过管道传输到urlview标准输入。
现在,为了避免hit-enter提示,我补充说:
noremap <leader>u :silent w !urlview<cr>
Run Code Online (Sandbox Code Playgroud)
当使用选择调用时,正确响应:
E481: No range allowed
Run Code Online (Sandbox Code Playgroud)
有关如何规避此问题的任何线索?
我想添加类似的东西
let coffee_compiler = '~/repos/coffee-script/bin/coffee'
Run Code Online (Sandbox Code Playgroud)
到我的.vimrc,但 vim 不会扩展~(显然因为它不是我的外壳)。
如何在不包含我的用户名的情况下完成这项工作?(我在多个主机之间共享 vimrc 文件,因此硬编码用户名是禁忌。)
我试图弄清楚如何在命令模式下删除整行。我看到很多 .vimrc 示例:
cnoremap <C-a> <Home>
cnoremap <C-b> <Left>
cnoremap <C-f> <Right>
cnoremap <C-d> <Delete>
cnoremap <M-b> <S-Left>
cnoremap <M-f> <S-Right>
" This doesn't delete a word as I'd expect
cnoremap <M-d> <S-Right><Delete>
Run Code Online (Sandbox Code Playgroud)
所有这些都按预期工作,但<M-d>. 我希望确实删除整个单词,但它只是跳到末尾并删除单个字符。有一个<Delete Word>或 吗<Delete Line>?
我在我的 .vimrc 中设置了viminfo以加快启动速度。但是设置不起作用。
设置是:
set viminfo=%,\"100,'10,/50,:100,h,f0,n~/.vim/cache/.viminfo
Run Code Online (Sandbox Code Playgroud)
当我尝试时echo &viminfo,该值与旧的(可能是默认值)相同:

我使用的是自己编译安装的vim 7.4,版本信息如下:
$ vim --version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Dec 17 2013 16:56:58)
Included patches: 1-131
Run Code Online (Sandbox Code Playgroud)
这是源代码安装配置:
./configure --enable-gui=gnome2 --enable-cscope --enable-multibyte --enable-xim --enable-fontset --with-features=huge --enable-pythoninterp=yes --enable-python3interp=yes --enable-rubyinterp=yes --enable-python3interp=yes --prefix=/home/marslo/.vim/tools/vim74 --with-compiledby=Marslo > vim-build.log
Run Code Online (Sandbox Code Playgroud)
我的设置有什么问题?我应该怎么做才能使设置工作?
我正在尝试将我的本地 vimrc 配置复制到我刚刚设置的新 linux 服务器:
scp -rp .vim/ nagios:~
scp .vimrc nagios:~
Run Code Online (Sandbox Code Playgroud)
然后,ls -hoal在我的~目录中的远程机器上:
drwxr-xr-x 4 <me> 51 Jun 29 13:34 .vim
-rw-r--r-- 1 <me> 431 Jul 7 10:59 .vimrc
Run Code Online (Sandbox Code Playgroud)
当我用vi(因为这是一个没有 vim 符号链接的 centos 服务器)启动 vim 时,我的 vimrc 没有加载。
我发现了这个 StackOverflow 问题,它提出了一些建议,但都没有奏效。例如:
在接受的答案中,我可以看到它找到并读取了我的 vimrc 文件,作为参考,这是我的 vimrc:
execute pathogen#infect()
set shiftwidth=2
set softtabstop=2
set tabstop=2
autocmd Filetype yml setlocal ts=2 sw=2 expandtab autoindent
syntax on
filetype plugin indent on
set autoindent
set statusline+=%#warningmsg# …Run Code Online (Sandbox Code Playgroud) 我有一个自定义的 Vim 配置,我一直在组合它。有许多很酷的插件和功能可以帮助 PHP 开发。但是,当我打开一个大文件(几千行)时,这些功能会使 vim 爬行。
我目前正在做的是将 .vimrc 重命名为 .vimrc-然后在处理这些大文件时重新启动 vim,这样我就有了默认配置。我想做的是在 vimrc 之间切换而不必离开 vim。认为这可能吗?这有点像在更改后获取 .vimrc,但我需要获取另一个文件来覆盖我的默认配置。