标签: vim

不小心点击 Cx Cs 时如何在 VIM 中返回插入模式

鉴于此 vim 会话:

% vim test-file.txt
iHello there!C-x C-s
Run Code Online (Sandbox Code Playgroud)

如何再次返回插入/命令模式?(Cx Cs 的意思是 Control-x Control-s,不知道是不是普通的 vi 键盘快捷键术语)

我知道有一些方法可以摆脱这种情况并再次进入插入/命令模式,但我不记得如何搜索 Google 或超级用户并没有给我任何结果。

发生这种情况是因为我主要使用 emacs,但我在没有安装 emacs 的远程主机上使用 vim。有时我会这样做,我想我应该学习如何离开而不是每次都重新启动终端。

vim

80
推荐指数
1
解决办法
3万
查看次数

Vim 卡在插入模式

我已经通过我的网络主机使用 Vim 几个月了(他们允许腻子访问)。突然间,escape钥匙变得没有反应了。我不能通过简单地点击转义来存在插入或任何其他模式。我必须点击F1它在 vim 中显示帮助并将我踢到命令模式。

我很确定我键盘上的转义键工作正常,因为我所有使用转义键的 Windows 快捷方式都正常运行。

我知道这是一个荒谬的问题,我确信关于解决方案还有很多需要研究。我真正需要的是关于从哪里开始寻找的可靠线索。

可能有帮助的事情:

  1. 我正在通过腻子使用 vim
  2. 我正在使用越狱登录
  3. 我不是root

linux vim putty

80
推荐指数
4
解决办法
10万
查看次数

我可以在 Vim 中禁止将注释延续到下一行吗?

在 Vim 中,如果我在代码文件中输入注释,然后点击Enter,它也会自动使换行符成为注释。

例如,在一个 Ruby 文件中:

# I manually typed the pound at the start of this line and hit enter.
# This line formatted itself this way automatically.
Run Code Online (Sandbox Code Playgroud)

一般来说,这就是我想要的,但并非总是如此。如何暂时关闭此自动评论行为?

vim

80
推荐指数
4
解决办法
5万
查看次数

brew upgrade 破坏了 OS X 上的 Vim(dyld:库未加载)

brew update && brew upgrade好久没跑了。

我刚刚做了一个大规模的升级,结果破坏了我的 Vim。

这是我运行后得到的vim

dyld: Library not loaded: /usr/local/opt/ruby/lib/libruby.2.3.0.dylib
  Referenced from: /usr/local/bin/vim
  Reason: image not found
Trace/BPT trap: 5
Run Code Online (Sandbox Code Playgroud)

我遇到过一些网站,但没有一个真正有用。

他们说这可能与rvmbrew uninstall vim; rvm system; brew install vim没有帮助。我也尝试重新安装 MacVim,但没有解决问题。

添加export PATH="/usr/local/bin:$PATH"到我的.bash_profile也没有帮助。

以下是供将来参考的列表:

我的 …

vim ruby homebrew libraries macos

80
推荐指数
3
解决办法
5万
查看次数

如何在 Vim 中搜索选定的文本?

我知道我可以使用/后跟正则表达式来搜索某些内容。我可以?用来向后搜索。我可以使用nN向前和向后重复搜索。

还有两个不错的快捷方式:*or#将搜索光标下的单词(向前/向后)。这非常有用!(也有g*g#变体)

但是...一旦我使用可视模式 ( v)选择了文本,我如何让 Vim 准确地搜索该文本?快速浏览:help并没有...呵呵...帮帮我。

vim

78
推荐指数
4
解决办法
4万
查看次数

如何更改直到 VIm 中的下一个下划线?

如果我在 vim 中有此文本,并且我的光标位于第一个字符处:

www.foo.com
Run Code Online (Sandbox Code Playgroud)

我知道我可以做到:

  • cw更改到第一个句点,因为 a word(小写 w)以任何标点符号或空格结尾
  • cW更改整个地址,因为 a Word(大写 w)仅以空格结尾

现在,如果我有这个怎么办:

stupid_method_name
Run Code Online (Sandbox Code Playgroud)

想改成这个?

awesome_method_name
Run Code Online (Sandbox Code Playgroud)

双方cwcW改变了整个事情,但我只是想下划线前更改片段。

我的后备技术是c/_,意思是“更改直到您在搜索中找到下一个下划线”,但对我来说,这也会导致所有下划线都突出显示为搜索词,这有点烦人。

是否有类似wW不包含下划线的说明符?

vim

74
推荐指数
2
解决办法
3万
查看次数

Vim:如何将 NERDTree 与当前打开的选项卡文件路径同步?

当我在 VIM 中打开一个与前一个文件路径不同的新选项卡时,NERDTree 仍将保持与前一个文件相同的目录层次结构。

是否有同步快捷方式将当前根目录更改为新打开的文件目录?

vim gvim nerdtree vim-plugins

73
推荐指数
4
解决办法
5万
查看次数

使用 tmux 或 screen 在 vi​​m 中切换模式时出现轻微延迟

由于我使用了 tmux,因此在 Vim 中切换插入模式和从插入模式切换不再是即时的。Esc在插入模式下按下后,需要很长时间才能真正退出插入模式。按下Esc和之后的任何其他键后立即切换,并Esc执行之后按下的键的命令。知道什么可能导致这种情况吗?

Vim 配置不是问题,因为当我在 tmux 之外运行 Vim 时不会发生延迟,所以这可能与 tmux 有某种关系。顺便说一句,我使用 gnome-terminal。

同样值得注意的是,似乎我无法在 tmux for 中定义键绑定Esc,我的计划是绑定Esc到:

bind Escape send-keys ^[
Run Code Online (Sandbox Code Playgroud)

唉,似乎Esc为 tmux绑定任何东西都不起作用。同样的问题也出现在屏幕上。

linux vim gnu-screen gnome-terminal tmux

71
推荐指数
3
解决办法
2万
查看次数

vim剪切和粘贴历史

当我在 vim 中“剪切”时,我相信有一些寄存器可以保存我最近剪切的所有内容的历史记录。我如何访问这些寄存器?

例如,假设我连续剪切这些单词中的每一个

  • '你好'
  • '世界'
  • '和'
  • '维姆'

请注意,我实际上并没有将这些编辑保存到特定的寄存器中,我只是连续使用了四次 'd'。

vim

70
推荐指数
2
解决办法
3万
查看次数

我如何知道正在使用什么语法文件?

Vim 以一种有趣的方式突出显示我的文件的语法,我想知道哪个语法文件负责这种行为。如何找出 vim 加载了哪些语法文件?

vim

70
推荐指数
3
解决办法
3万
查看次数