Articles of VIM

在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”

如何通过shell脚本执行vim命令

嗨,我有一个情况 我写了一个shell脚本,我必须将input传递给vim 。 详细解释 在这里我已经写了我不能改变的shell脚本。 这是它的代码。 sudo vim /mnt/etc/{hosts,hostname,ports} 由于这个主机文件被打开,我们可以通过:n和类似的端口文件手动去主机名文件旁边。 但是我必须从我的.sh文件执行相同的操作。 另外我必须编辑端口文件,完成后我必须保存并完成:wq命令。 我该怎么做?

从vim发送代码到stata

我一直在使用Vim在Windows上编写Stata脚本一段时间。 我现在正在学习R,我想完全切换到Linux作为我的操作系统(我最近在我的笔记本电脑上切换到了Ubuntu)。 R在Windows和Linux下都可以正常工作,但是我仍然需要使用Stata。 在Windows中,我一直使用Stata用户提供的一个简单的AutoIt脚本将行/整个文件发送给stata进行评估。 这个脚本在Linux中不起作用。 这是剧本的样子 ; AutoIt v3 script to run a Stata do-file from an external text editor ; Version 3.1, Friedrich Huebler, fhuebler@gmail.com, www.huebler.info, 30 March 2009 ; Declare variables Global $ini, $statapath, $statawin, $dofile, $winpause, $keypause, $clippause ; File locations ; Path to INI file $ini = @ScriptDir & "\rundo.ini" ; […]

为什么在vim中使用Esc?

Vi编辑器最初是在一个ADM-3Aterminal上编写的,该terminal的Tab键代替了Tab键(与大多数现代键盘相比)。 许多触摸打字员都很喜欢这样一个事实,即在使用Vim的时候,他们可以将手放在键盘的一排,但是使用Esc会使得必须离开手按Esc键。 我目前正在学习vim。 应该把Esc重新映射到别的地方? 这种情况最常见的重映射是什么? 或者我应该离开重新esc的想法,并继续使用它? vim的亲用户做什么?

如何获得Ctrl-Backspace在gnome-terminal中删除vim中的单词?

我希望Ctrl-Backspace在vim插入模式下删除当前单词。 从xterm内我可以通过 :inoremap <CH> <CW> 但在侏儒terminal,我无法想出一个办法,使之发生。 在vim插入模式下,如果我inputcontrol-v,然后按退格键,我会在xterm中得到^ H,而^? 在侏儒terminal。 不幸, :inoremap <C-?> <CW> 在gnome-terminal中没有办法; 无论如何,控制退格只会删除单个字符。 关于ASCII码: 侏儒terminal让你改变退格字符在编辑 – >configuration文件首选项 – >兼容性。 不幸的是,就我所知,没有任何选项可行:我通过设置应用于Backspace的任何字符,如果我尝试映射字符本身,比如 :inoremap <CH> <CW> 那么常规的退格和控制退格都会擦掉整个单词; 如果我尝试映射控制加上这个字符,就像 :inoremap <C-^H> <CW> 那么正常的退格和控制退格只会抹去一个字符。

我可以在不离开vim的情况下获得root权限吗?

有时当我编辑一个需要root权限的文件时(例如/ etc下的文件),但是我忘记运行vim作为sudo。 编辑完成后,键入:wq保存并离开,我发现我不能,甚至使用!wq ,因为这个文件是只读的。 如果我离开并重新编辑文件,我的所有工作都将丢失,但是如果没有,我不能保存我的编辑。 那么,如何在不离开vim的情况下获得root许可?

默认的缓冲区大小复制/粘贴在VIM?

我试图从vim会话复制150行粘贴到另一个。 我的第一个想法是去 150Y 我做了:q ,然后vim (otherProgram).py ,并按'p'。 只有50行复制。 于是我回到我原来的文件,做了shift-v然后select了我想要的行,然后去了另一个文件,并做了p 。 它似乎也没有优雅复制,仍然只有50行。 我开始认为vim的复制缓冲区有一些默认的大小。 我正在使用Mac OS X.有什么方法可以找出是否有某种默认的缓冲区大小? 有什么方法可以改变它吗?

如何用最大化的窗口启动gvim?

我想从命令行启动gvim进入一个最大化的窗口 – 我该怎么做? 我不希望总是以最大化的窗口开始(也就是说, 不是在.vimrc中将其configuration为默认值),而是select为程序提供一个参数。 也就是说,运行gvim <parameter(s)>应该在最大化的窗口中启动程序,但是运行gvim应该以默认的大小启动程序。