Articles of VIM

为什么每次保存文件时vim都会创build一个新文件?

我有一个名为test的文件: [test@mypc ~]$ ls -i 4982967 test 然后我使用vim来更改它的内容并input:w来保存它。 它现在有一个不同的inode: [test@mypc ~]$ ls -i 4982968 test 这意味着它已经是一个不同的文件,为什么VIM将它保存到另一个文件,我使用:w保存到orinial之一? 你看,echo到一个文件不会改变inode,这是预期的: [test@mypc ~]$ echo v >> test [test@mypc ~]$ ls -i 4982968 test

为什么“script”命令会生成^ [和^ M个字符,以及如何使用vimsearch和replace它们?

在Linux上,使用bash shell,当我使用脚本命令时,生成的文件被称为打字稿。 当我用vim打开这个文件时,每一行都包含^ M字符,并且有几行(由于我的彩色命令提示符)包含一个字符^ [ 。 我想用什么都replace这些字符,有效地从生成的脚本中删除它们。 首先,我试过:%s/^[//gc , :%s/\^[//gc , :%s/\^\[//gc和其他一些变体。 没有一个匹配^ [字符,所以search/replace不起作用。 我也尝试了所有这些与^ M字符相同的结果。 一些谷歌search后,我发现^ M字符是真正的回车“\ r”。 所以然后我试过:%s/\\r//gc ,这对^ M字符有效! 我search了一些,试图找出^ [字符是什么,但没有发现任何帮助。 2个问题 : 1)什么是[字符,什么是适当的正则expression式在vim中使用来search和replace它? 2)为什么在linux上使用脚本命令时,生成的脚本在行尾产生^ M ? 这使得我认为linux脚本命令正在生成CRLF eol字符,而不仅仅是LF eol字符。

Vim暂停,如果在.vimrc文件回声

我对vim有点问题。 我正在使用Debiantesting和–version给出 VIM – Vi IMproved 7.3 (2010 Aug 15, compiled Dec 1 2011 03:25:24) 在我的.vimrc文件中,如果我使用echo语句,它将使用以下语句暂停vim的运行: Press ENTER or type command to continue 然后vim将正常运行。 这是从简单的添加: echo "Hello" 到.vimrc的底部 如果可以,我怎样才能阻止这种暂停行为? 谢谢,纳尼

有没有办法改变vim的默认模式

有谁知道如何改变VIM的默认模式? 它的默认模式是命令模式,但我可以改变它插入模式?

如何在svn中查看vimdiff风格的svn diff

我开始在Linux上使用Subversion。 svn diff给出了一个非常神秘的观点 – 对眼睛非常非常不友好。 我如何解释它的输出? 更重要的是,有没有一种方法可以查看vimdifftypes的整洁风格的差异,这两个文件将并行打开?

“猫”和“vim”之间的不同表演

cat /tmp/test : >> cat /tmp/test Hello World Hello World Hello World Hello World vim /tmp/test : >> vim /tmp/test ==> 1 ^[[1;31mHello World^[[0m 2 ^[[2;32mHello World^[[0m 3 ^[[5;33mHello World^[[0m 4 ^[[6;34mHello World^[[0m 对不起,我有谷歌它,但我仍然不知道如何让vim /tmp/test显示与cat /tmp/test 。 你能帮我一下吗? 谢谢。

在Vim(德语键盘)中重新映射一个密钥

好吧,我一直在尝试Vim(标准控制台版本;我的操作系统是Linux Mint 13),我想摆脱必须使用Escape键来改变模式。 最好,我想交换Capslock和Escape键,但据我所知,在Vim本身中是不可能的。 我发现的大多数“解决scheme”都涉及在全球范围内(使用xmodmap或其他)更改密钥,但我并不是那么想。 如果只有在Vim中有一个简单的方法来换Capslock和Escape,请告诉我。 我听说的另一个常见的事情是使用“Ctrl- [”作为等同于Escape。 但是,因为我正在使用具有不同布局的德语键盘,所以这不是一个选项。 所以,我以为我会在Vim中使用noremap <C-ü> <Esc> (德国键盘上的“ü”键与美式键盘上的“[”键在同一位置),但是没有工作,要么。 我假设这是因为“ü”不是一个ASCII字符。 有没有办法让这些选项中的任何一个工作? 更新 :好吧,这很奇怪。 更多的实验后,似乎“Ctrl-ü”确实工作。 我不知道发生了什么 – 也许我尝试了不同的东西,搞砸了一些编码相关的设置? 如果没有好的解决scheme来重新映射capslock,我想我会坚持使用“Ctrl-ü”。

在vim中显示所有不可见的字符

我知道关于这个在stackoverflow上有一些线程,但是当我在编辑器中编写“:set list”时,它似乎显示隐藏的字符,但它不会在我们遇到问题的代码中显示隐藏的字符。 有些时候,我们的代码中有一些不可见的符号,如果循环中断,我不知道符号如何到达那里,除了一些奇怪的键盘组合很多被意外键入。代码本身看起来是正确的,但看不见的符号打破。 我已经在网上search这个,但所有我能find似乎是在VIM的“:设置列表”命令,除了必须改变隐藏的字符的颜色,但虽然这似乎显示一些隐藏的字符,它不会显示问题那些。 我们得到两个象征十字架的符号,一个看起来像手枪。 我们也尝试在崇高的文本中添加“draw_white_space”设置,但是这似乎只是显示,好吧,像这样的空白,但结果显示在谷歌显示隐藏字符,所以我试了一下。 通过DiffMerge工具,我们能够看到符号的位置的唯一方法是在其他编辑器中看不到这些符号,但是我们实际上已经能够将符号复制到它自己的文件中,并且通过所有的grep带有-f grep选项的文件可以工作,但是在vim中显示字符比使用键绑定更容易。 有人有什么build议吗? 当问题是一个不可见的符号时,这导致我们使用更多的时间来debugging代码。

Ubuntu 16.04 LTS – 无法在VIM中启用xterm_clipboard

我使用VIM很多,并且以前已经能够通过使用StackOverflow上单独的post中提供的脚本来获得+xterm_clipboard 支持。 我已经在我的机器上重新安装了Ubuntu,并从Ubuntu 14.04.4 LTS(Wily)迁移到了Ubuntu 16.04 LTS(Xenial)。 # Get the compile-dependencies of vim sudo apt-get build-dep vim # If you haven't got mercurial, get it sudo apt-get install mercurial # Get the source hg clone https://vim.googlecode.com/hg/ vim_source # Compile it cd vim_source ./configure \ –enable-perlinterp=dynamic \ –enable-pythoninterp=dynamic \ –enable-rubyinterp=dynamic \ –enable-cscope \ –enable-gui=auto \ –enable-gtk2-check […]

如何在vim的ex模式下从缓冲区中粘贴?

我在从文件复制某些文本,然后将其复制到一个新的拆分窗口有问题。 3yy |新| P 在命令模式下工作 当我按下时 复制工作后在分割窗口中input“p”