Articles of VIM

使用vim读取新行的Linux cat命令输出

我试图打开文件a.lst列出的所有文件: symptom1.log symptom2.log symptom3.log symptom4.log 但是尝试下面的命令: cat a.lst | tr "\n" " " | vim – 只打开stdin输出 symptom1.log symptom2.log symptom3.log symptom4.log 它不会在vim中打开symptom1.log, symptom2.log, symptom3.log & symptom4.log 。 如何使用vim打开a.lst中列出的所有文件?

软链接vimdiff如何实现

我发现vimdiff实用程序只是vim的一个软链接。 两者都位于我的Suse11框中的/usr/bin/下。 vimdfiff是vim的软链接。 有趣的是, vimdiff file1 file2实际上相当于vim -d file1 file2 ,所以从这个意义上说, -d选项会自动embedded到软链接中,所以我的问题就像How?一样简单?

VIM:replace当前C / C ++函数中所有单词的出现

我必须replace一些特定的macros(只有一些在几十个)C函数中出现的所有事件。 由于该文件长达数千行,在所有函数中都有几个macros实例,所以我想要replace光标当前放置的特定函数中的所有事件。 我知道VIM提供了导航命令(例如[[去到当前函数的开头,然后%来find它的匹配的大括号],但我不知道如何使用它们来提出所需的search – replace命令。 谁能帮忙?

VimTutor箭头键v / s hjkl

VimTutor在第一课中说: 注:光标键也应该工作。 但是使用hjkl,一旦习惯了,你将能够更快地移动。 真! 但是,我发现他们之间没有任何区别。 使用hjkl v / s箭头键真的有区别吗?

如何在vim中search</ string>?

我想在vim中search, /</string> 但它没有工作,怎么办可以完全匹配“ </string> ”?

vim在linux上加载python

我的Debian中有Python 2.7和Python 3.3。 我使用arg –enable-shared重build了这两个文件。 比使用argsbuild立VIM 7.4之后“ –enable-pythoninterp –enable-python3interp –with-features=huge –with-python-config-dir=PathToConfig –with-python3-config-dir=PathToConfig ” 当我给评论VIM – 版本,我可以看到标志' +python/dyn and +python3/dyn ' 但是,当我input命令':python import sys'时,我收到错误消息: E448: Could not load library function _PyArg_Parse_SizeT E263: Sorry, this command is disabled, the Python library could not be loaded. 当我键入命令':python3 import sys'时,我得到错误信息: E448: Could not load library function PySys_SetArgv E263: Sorry, […]

vim交叉编译为ARM

我正在使用arm-linux-gnueabi并试图为我的设备编译vim 。 经过一段时间的search和研究,我成功了,但是当我从设备上开始时,我看到了这个: # /usr/tmp/vim/bin/vim ~ … ~ ~VIM – Vi IMprovedversion 7.4.873by Bram Moolenaar et al.Vim is open source and freely distributableSponsor Vim development!type :help sponsor<Enter> for informationtype :q<Enter>to exittype :help<Enter> or <F1> for on-line helptype :help version7<Enter> for version infoRunning in Vi compatible modetype :set nocp<Enter>for Vim defaultstype :help cp-default<Enter> for info on […]

保持* nix格式

我的代码工作,但不是我想要的方式。 基本上,我的代码是通过当前目录查找,search文件夹,并在这些文件夹中查看文件。 如果其中一个文件扩展名是$ Examplevariables的值,那么它应该删除具有相同起始文件名的所有其他文件,而不pipe其扩展名是多less,并将具有$ Example扩展名的扩展名重命名为相同的名称,而不使用$示例扩展。 这里是代码: #!/bin/sh set -o errexit Example=dummy for d in *; do if test "$(ls -A "$d" 2>/dev/null)"; then if [ $(ls -1 ${d}/*.$Example 2>/dev/null | wc -l) -ge 1 ]; then cd $(pwd)/$d; for f in *.$Example; do fileName="${f%.$Example}"; mv "$f" "${f%.$Example}"; #tr "\r" "\n" < "${f%.$Example}" > "${f%.$Example}" listToDelete=$(find […]

为C / C ++标准libs,boost和第三方库设置单独的ctags db

我想在/usr/include/为各种库设置单独的ctags数据库,以便与OmniCppComplete一起使用。 这个想法是能够只吸引目标语言中特定项目所需的库 – C或C ++。 例如,我希望有一个用于标准C库的数据库,一个用于C或C ++程序可以使用的系统库(想到套接字/networking),一个用于标准C ++ libs / STL / Boost,然后是用于各种第三方库(如QT或glib)的其他数据库。 然后,我可以简单地通过在vim中键入set tags+= ~/.vim/somelib.tags来实现。 我假定所有与C ++ stdlib和STL相关的东西都在/usr/include/c++ ,Boost全部在/usr/include/boost 。 不幸的是,标准的C库和系统库似乎只是被直接放到/usr/include/而且还有很多其他的东西。 我怎样才能得到哪些文件和目录属于哪个库的列表? 我在Ubuntu 8.04上。

在Vim的另一个shell中执行一个命令

我在开发工作stream程中使用了两台显示器,一台是用于编辑的全屏vim会话,另一台是全屏terminal,运行make && ./test显示结果。 相当多的时候,我发现自己在后台打开了一堆其他的窗口(浏览器,更多的shell等)。 我不喜欢这个原因: 我不想记得有多less次我得到我的窗口之前,必须打标签。 Ubuntu目前没有强烈的视觉反馈。 我可能可以做些什么,但这是一个单独的问题。 说实话我很懒,而且:w alt-tab up-arrow enter alt-tab键击太多了。 我认为一个好的解决scheme可能是在另一个窗口中运行make && ./test的vim命令,但我想不出如何做到这一点。 我可以编写一个服务器/客户端脚本,等待来自vim的一些通知然后运行命令,但它似乎应该有一个更简单的解决scheme。 有什么想法吗?