vim相关内容

是否可以使用 VIM 格式化 C++ 代码?

我对 VIM 比较陌生.我得到了一些源代码,这是一团糟.乍一看,我希望至少对代码有一个清晰和有组织的视图,所以我喜欢正确地格式化它,我的意思是根据函数的深度缩进等等. 我想知道是否可以使用 VIM 来完成,否则您可以推荐哪些其他命令行工具. 谢谢 解决方案 虽然 vim 是真正的瑞士刀,但对于某些工作,我仍然更喜欢外部工具.这种方法有时比使用内置的等效方法更直观、更容易记住. ..
发布时间:2021-12-24 08:34:54 其他开发

Vim 的 Python Omnicompletion 不起作用

我已经在 Stack Overflow 和其他地方搜索了一个小时.唉!请帮忙.Vim 的omnicompletion 只是不起作用. 我编译了带有 Python 支持的 Vim 7.2. filetype plugin on 在我的 .vimrc 中. 当 .py 文件打开时,:echo &omnifunc 打印 pythoncomplete#Complete. 我正在处理 ..
发布时间:2021-12-24 08:34:41 Python

Vim PHP 全能完成

我正在尝试在 Vim 中正确地获得 PHP 自动完成功能.现在当我做一个 $blog = new Blog();$blog-> 然后点击CTRL+X CTRL+O 我希望omnicompletion 返回Blog 类中的所有函数. 相反,它返回整个项目的所有函数.我已经为我的项目构建了 ctags,如下所示:ctags -R * 有没有办法让自动完成上下文感知? 解决方案 ca ..
发布时间:2021-12-24 08:34:30 PHP

将您的 .vim ~/.vimrc 添加到 github(又名点文件)

我见过一些人将 git repos 与他们的点文件.我想知道他们是否只是 cd ~/混帐初始化git add .vimrc//等等 ?然后这就是他们保持最新的方式?或者他们可能会复制并同步它们? 你们推荐或使用什么策略?主要是不想提交并推送我的整个 ~/ 谢谢 解决方案 为你的家建立一个 git 存储库可能是一个坏主意(你会花更多的时间来创建你的 .gitignore 文件 ..
发布时间:2021-12-24 08:34:20 其他开发

在 Vim 中,如何搜索单词边界字符,例如正则表达式中的 \b?

我希望能够搜索 /the\b 找到“the"而不是“then". 我还尝试在打开非常神奇的情况下进行搜索: /\vthe\b 解决方案 /the\> 见:help/ordinary-atom 我假设“regexp"的意思是PCRE.值得注意的是,Vim 的正则表达式语法不同于(并且明显早于)PCRE. 另见: 为什么 VIM 有自己的正则表达式语法? vi ..
发布时间:2021-12-24 08:34:09 其他开发

在 Vim 中将 encoding 和 fileencoding 设置为 utf-8

这两个命令有什么区别? 设置编码=utf-8 设置文件编码=utf-8 当我想使用 utf-8 时,是否需要同时设置? 另外,我是否需要使用 set 或 setglobal 设置文件编码? 解决方案 TL;DR 在使用 set encoding=utf-8 的第一种情况下,您将更改终端中显示的输出编码. 在使用 set fileencoding=utf-8 ..
发布时间:2021-12-24 08:33:54 其他开发

Vim:保存时创建父目录

如果我调用 vim foo/bar/somefile 但 foo/bar 不存在,Vim 拒绝保存. 我知道我可以切换到 shell 或从 Vim 执行 :!mkdir foo/bar 但我很懒:)有没有办法让 Vim 在保存缓冲区时自动执行此操作? 解决方案 augroup BWCCreateDir自动命令!autocmd BufWritePre * if expand("")!~ ..
发布时间:2021-12-24 08:33:16 其他开发

如何在 VI 编辑器中标记/突出显示重复的行?

您将如何标记缓冲区中与其他行完全相同的所有行?通过标记它们,我的意思是突出显示它们或添加一个字符或其他东西.我想保留缓冲区中行的顺序. 之前: foo酒吧富巴兹 之后: foo*酒吧富*巴兹 解决方案 作为前任: :syn clear 重复 |g/^\(.*\)\n\ze\%(.*\n\)*\1$/exe 'syn match Repeat "^' .escape(getline ..
发布时间:2021-12-24 08:33:04 其他开发

为什么在使用 vim 时 OS X 上没有 crontab 条目?

我想在我的 Mac 上使用 cron.我选择它而不是 launchd,因为我也希望能够在 Linux 上使用我的新知识.但是,我似乎无法使 crontab -e 命令起作用.它启动了 vim,我进入了我的测试工作: 0-59 * * * * mollerhoj3 echo "Hello World" 但是保存退出后(:wq), crontab -l 说: mollerhoj3 没有 c ..
发布时间:2021-12-24 08:32:38 其他开发

使用 Solarized 在 iTerm2 中使用 vim 的颜色不正确

我在终端 vim(非 gui)和日光化配色方案中遇到了 iTerm2 一个奇怪的问题.首先,我已将 iTerm2 设置为使用深色日晒配色方案. 我也在 vim 中使用了solarized.我的 .vimrc 中有以下几行 set background=dark颜色方案日晒 在终端中,配色方案看起来不正确: 参考这是它在 MacVim (gui vim) 下的样子 我需要在 i ..
发布时间:2021-12-24 08:32:34 其他开发

你能在 vi/vim 的括号之间抓取或删除吗?

给定这行 C 代码: printf("%3.0f\t%6.1f\n", fahr, ((5.0/9.0) * (fahr-32))); 有没有办法从第一个粗括号删除或猛拉到匹配的括号?我想过 df),但这只会让你在 9.0 之后. 有没有类似的方法让 vim 抓取匹配大括号之间的所有内容,而不管换行符如何? 解决方案 各种动作:% % 命令 跳转到匹配光标下的项目. ..
发布时间:2021-12-24 08:32:24 其他开发

Yank 文件名/Vim 中当前缓冲区的路径

假设当前缓冲区是一个打开进行编辑的文件,所以:e 不会显示E32: No file name. 我想删除其中一个或全部: 与状态行上显示的完全相同的文件名,例如~\myfile.txt 文件的完整路径,例如c:\foo\bar\myfile.txt 只是文件名,例如myfile.txt 解决方案 TL;DR :let @" = expand("%")> 这会将文 ..
发布时间:2021-12-24 08:32:12 其他开发

如何使用 vimdiff 解决 git 合并冲突?

我刚刚在 git 中将一个分支合并到我的 master 中,但我得到了 自动合并失败;修复冲突,然后提交结果. 现在我运行 git mergetool 并打开 vimdiff,如下图所示.我不知道如何使用 vimdiff.这里的每个面板是什么意思,我应该如何解决合并冲突? 解决方案 所有四个缓冲区都提供同一文件的不同视图.左上角的缓冲区 (LOCAL) 是文件在您的目标分支中的外观(您正在 ..
发布时间:2021-12-24 08:32:03 其他开发

UltiSnips 和 YouCompleteMe

我在我的 macvim 上安装了 ultisnips 和 youcompleteme 包.问题是 ultisnips 不起作用,因为选项卡受 ycm 约束.我尝试放置 let g:UltiSnipsExpandTrigger = "" 以便我可以使用 shift-tab 触发代码段完成,但由于某些未知原因它不起作用.我可以使用大写作为触发器,但到目前为止我还没有找到这样做的方法. ..
发布时间:2021-12-24 08:31:46 其他开发

在 VIM 中删除光标后面或周围的单词

我现在从 TextMate 切换到 VIM.我发现 INSERT 模式下的 ^+W 非常有用.但是,我不仅要删除光标之前的单词,还要删除光标之后或周围的单词. 我做了一些谷歌搜索,但我唯一能找到的是 ^+W 删除光标前的单词. 解决方案 你应该做的是为一系列命令创建一个特定键的 imap,在这种情况下,这些命令会让你进入普通模式,删除当前词然后把你放回插入: :imap ..
发布时间:2021-12-24 08:31:38 其他开发

在启用 set mouse=a 的情况下在 Vim 之外复制文本

启用set mouse=a后,在Vim内部复制的文本不会粘贴到Vim之外.有人知道解决这个问题的方法吗? 在这里,用鼠标选择文本会打开可视模式并禁用弹出菜单中的Copy选项: 解决方案 在用鼠标选择的同时按 shift.这将使鼠标选择的行为就像 mouse=a 未启用一样. 注意:这个技巧也适用于“中间按钮粘贴":如果你想粘贴在外面选择的vim文本,点击中间按钮的同时按shif ..
发布时间:2021-12-24 08:31:32 其他开发

有什么方法可以在 vim 中删除而不覆盖你上次的 yank?

我喜欢 vim,但一个常见的问题是: 拉一条线 转到您要粘贴的位置 删除那里的内容 粘贴你的 yank,却发现它粘贴了你刚刚删除的内容 显然,工作流程是先删除,然后是猛拉.但如果我没有有,那就太好了.有没有人对此有窍门?vim 是否有运行良好的粘贴缓冲区,或者是否有我可以更改的 .vimrc 设置? 解决方案 传递给_寄存器,黑洞. 删除一行而不将其粘贴到寄存器中: ..
发布时间:2021-12-24 08:31:26 其他开发

在 tmux 模式下丢失 vim 颜色方案

我正在运行 iterm2,当我处于 tmux 模式时,我在 vim 中设置的颜色方案没有显示.只有我在 iterm 中设置的配色方案.如果我从 shell 运行 vim,颜色方案看起来是正确的 - 只有当我处于 tmux 模式时. 我试过在 vim 中设置 :colorscheme molokai(见下面的截图)并且它没有改变 - 同样,iterm2 的默认颜色方案仍然存在. 我是否缺 ..
发布时间:2021-12-24 08:31:17 其他开发

终端中的 Git 提交打开 VIM,但无法返回终端

目前正在尝试学习 GitHub,并在 nettuts 上完成此Git 基础教程.我正在学习关于提交的课程. 老师输入 git commit 并打开 VIM 作为他的编辑器(我也想知道如何在 Sublime Text 2) 无论如何它在 VIM 中打开,我添加了 1 行说这是我的第一次提交并点击保存. 接下来,它提示我将输出保存到桌面,这是我在他的截屏视频中没有看到的.现在我仍然在 VI ..
发布时间:2021-12-24 08:31:12 其他开发