标签: vim

在每个偶数/奇数行上插入编号文本

在 Vim 中,我有以下文本:

门

椅子

桌子

乌干达

我想在每个奇数行上添加编号文本,这应该给出:

>item1
Door
>item2
Chair
>item3
Table
>item4
Uganda
Run Code Online (Sandbox Code Playgroud)

这在vim中可能吗?

vim vi

2
推荐指数
1
解决办法
1431
查看次数

Vim删除所有具有匹配正则表达式的段落

我有一系列段落——一个 java 线程转储——我想删除,但只有当段落包含文本 / Executor\.getTask/ 时——也就是说,线程没有任务。

我怎样才能在 vim 中做到这一点?我目前有一个包含内容的宏/Executor\.getTask^Mvipd,但这意味着我必须按@@几千次——这是一个大的线程转储。我希望有一种方法可以global用来做到这一点。

这是一个示例段落。

"xyz-1376" prio=10 tid=0x00002aedbc289000 nid=0x6cdf waiting on condition [0x00002aedd221f000]
java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x0000000434ca6d48> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1085)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:807)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
Run Code Online (Sandbox Code Playgroud)

vim

2
推荐指数
1
解决办法
658
查看次数

Vim 命令模式百分比扩展

我在 Vim 中的典型日常工作流程包括两个垂直窗格;左边是生产代码,右边是测试。

我经常切换语言(和测试框架),所以我喜欢创建一个新的映射来在每个会话中运行我的测试代码。假设我正在做一些 Ruby 项目并且我正在lib/importer.rb. 随附的规范位于spec/lib/importer_spec.rb.

要创建用于运行规范的映射,我将关注显示规范的窗格,然后输入以下内容:

:nnoremap -g :!rspec %<cr>
Run Code Online (Sandbox Code Playgroud)

注意:我使用连字符/减号作为我的主键。

这有效,但仅当我点击时规范窗格具有焦点-g。如果生产窗格具有焦点并且我点击了映射,则rspec将尝试运行生产代码,这是没有意义的。

要解决此问题,我可以将绝对路径写入规范文件:

:nnoremap -g :!rspec spec/lib/importer_spec.rb<cr>
Run Code Online (Sandbox Code Playgroud)

这行得通,虽然写起来有点麻烦。

昨晚在阅读Practical Vim 时,我意识到在命令模式下你可以使用%扩展——你写%然后点击tab,百分比被替换为当前聚焦窗格中文件的绝对路径。

如果我这样做:

:!rspec %
Run Code Online (Sandbox Code Playgroud)

……然后点击tab,我明白了:

:!rspec spec/lib/importer_spec.rb
Run Code Online (Sandbox Code Playgroud)

这太棒了!但是,如果我这样做:

:nnoremap -g :!rspec %
Run Code Online (Sandbox Code Playgroud)

……然后点击tab,我明白了:

:nnoremap -g :!rspec %^I
Run Code Online (Sandbox Code Playgroud)

我是个好人,我纳税。为什么这会发生在我身上?

vim text-editors

2
推荐指数
1
解决办法
1703
查看次数

Vim 航空公司插件坏字符

我无法正确显示 vim-airline 插件。

这就是它的样子 预期的 这是它目前的样子。 实际的

请注意>, 显示不正确。

我尝试了 vim-airline FAQ 上的第一个修复程序,没有任何变化。

fonts vim character-encoding vim-plugins

2
推荐指数
1
解决办法
4478
查看次数

在终端中打开 Macvim,无需打开新窗口

每次我尝试编辑文件时,我都会mvim file.txt在终端中进行,然后会弹出一个新的 MacVim 窗口。但如果我这样做vim file.txt,它不会打开一个新窗口。相反,它将在终端内初始化 vim。

问题:我如何确保当我这样做时mvim file.txt,MacVim 将在终端内打开,就像我使用vim.

我已经尝试了以下解决方案,但它不起作用。

/sf/ask/243512881/

terminal vim macvim macos

2
推荐指数
1
解决办法
5154
查看次数

为大文件禁用 vim 插件

我有一个自定义的 Vim 配置,我一直在组合它。有许多很酷的插件和功能可以帮助 PHP 开发。但是,当我打开一个大文件(几千行)时,这些功能会使 vim 爬行。

我目前正在做的是将 .vimrc 重命名为 .vimrc-然后在处理这些大文件时重新启动 vim,这样我就有了默认配置。我想做的是在 vimrc 之间切换而不必离开 vim。认为这可能吗?这有点像在更改后获取 .vimrc,但我需要获取另一个文件来覆盖我的默认配置。

vim vimrc vim-plugins

2
推荐指数
1
解决办法
1783
查看次数

带有多个命令的 Vim makeprg (cd + make)

我希望 vimmakeprg使用两个命令运行,即:cd\ cmt;make; 但是当我这样做时,它会卡在 make 命令上。

澄清一下,当我的意思是卡住时,我的意思是它结束编译但它没有返回到vim,我需要点击 Cc 来取消编译,但它也破坏了编译器的编译日志解释,我无法得到在cwin与编译错误解释。

有任何想法吗?

vim

2
推荐指数
1
解决办法
3551
查看次数

如何在vim中搜索多个多字串?

比如我试图寻找二者的发生hello world,并goodbye world在同一直线上。我已经尝试了一堆不同的迭代。例如,如果你想找到一个多字串,你可以把它放在括号里,/\<hello world\>但我不知道如何对多个多字串进行多次检查

我试过了

/\<\(hello world \& goodbye world\)\>

这也不是

/\<hello world\>\&\<goodbye world\>

linux vim regex string

2
推荐指数
1
解决办法
8725
查看次数

Solarized Dark + Gnome Terminal + Vim + Vim-Airline

我使用https://github.com/Anthony25/gnome-terminal-colors-solarized为 gnome 终端安装了日光化黑暗主题,然后安装了Vundle https://github.com/altercation/vim-colors-solarized。我将这些行添加到我的.vimrc

try
  " Solarized options
  let g:solarized_term = 1
  colorscheme solarized
catch                                                                         
endtry

set background=dark
Run Code Online (Sandbox Code Playgroud)

我也在使用使用 Vundle 安装的https://github.com/bling/vim-airline

问题是在普通模式下 vim-airline 看起来不太好(文本很难阅读):

Vim Ubuntu

在我的 Mac 上使用几乎相同的设置,它看起来非常好:

Vim OSX

如何让我的 Gnome 终端上的 vim 看起来像在我的 Mac 上一样?

terminal vim ubuntu solarized

2
推荐指数
1
解决办法
6377
查看次数

如何在vim中附加到剪贴板寄存器?

我已经知道您可以使用以下命令复制寄存器的内容:(加上 yank、delete 等命令)

"a
Run Code Online (Sandbox Code Playgroud)

我也知道您可以使用以下方法附加到 a 寄存器:

"A
Run Code Online (Sandbox Code Playgroud)

此外,我了解如何使用以下方法将某些内容复制到剪贴板寄存器:

"+
Run Code Online (Sandbox Code Playgroud)

问题这里是我输入什么来附加到剪贴板寄存器?

编辑: 这可能不是必需的,但我的 VIM 版本是:

Vi IMproved 7.4(2013 年 8 月 10 日,编译于 2014 年 1 月 2 日 19:39:59)带有 GTK2 GUI 的巨大版本。

clipboard vim

2
推荐指数
1
解决办法
3263
查看次数