Vi & Vim

使用vi和Vim系列文本编辑器的人员的问答

4
从光标删除直到字符x的第n次出现
我知道我可以从光标中删除字符x,直到并且包括该字符的第一个出现d/x<CR>,v/x<CR>d如果要先看到选择内容,然后再删除。如何从当前光标位置删除直到出现x的第n个? 例如,如果光标在中的第一个空格之后 yada yada yada yada yada yada yada x yada yada yada yada x yada yada yada x xx 和I型指令,以除去对第三个X的结果需要是: 亚达 xx

1
如何重新排列打开的标签?
比方说,我有四个打开的文件:file0.txt,file1.txt,file2.txt,和file3.txt。我按标签的顺序打开所有这些标签。所以我的标签排序是这样的: file0.txt file1.txt file2.txt file3.txt 然后,假设我想重新排序我的标签,以便file2.txt先于file1.txt: file0.txt file2.txt file1.txt file3.txt 我怎么做?是否有Vim命令将当前选项卡向左或向右移动,或以其他方式对当前打开的选项卡重新排序?

3
进入neovim终端面板时如何进入插入模式?
我具有以下映射,可以很容易地从neovim中移出终端面板: tnoremap <C-h> <C-\><C-n><C-w>h " Workaround since <C-h> isn't working in neovim right now tnoremap <C-w>h <C-\><C-n><C-w>h tnoremap <C-j> <C-\><C-n><C-w>j tnoremap <C-k> <C-\><C-n><C-w>k tnoremap <C-l> <C-\><C-n><C-w>l 唯一的问题是,当我返回到终端窗格时,必须按下i才能回到插入模式。当我进入运行终端的neovim窗格时,我总是希望它处于插入模式。实现此目标的最佳方法是什么?

3
如何完全清除一个或多个寄存器?
我经常使用的:registers命令显示所有寄存器的内容(我忘了我放在哪里,到底是什么作用"*,".,"%等都是)。 特别是因为我在"选项中设置了选项viminfo,因此我的寄存器在我的vim会话之间(一般来说,我希望短期内保持),随着时间的流逝,:registers列表变得越来越长,因此越来越繁琐和充满真的很旧。 到目前为止,我发现解决此问题的唯一方法是手动从中编辑一些“旧”寄存器内容~/.viminfo,这是我需要做的,vim -u NONE因此有点麻烦。 有没有一种更干净的方法来擦除所有寄存器或擦除特定的寄存器,使其不再出现在:registers列表中?


1
“ dap”会删除所有内容吗?
我熟悉“ dd”和“ d {motion}”命令,但是在vim的help.txt中找不到“ dap”。在正常模式下,“ dap”有什么作用?为什么?(或者,我怎么能自己找到这种东西?)

2
多选替代品?
通常,用c选项替代可以给我两个选择:(y)es或(n)o。是否可以有几个编号的是选项可供选择? 例 文件 person: Alice dog: Tobby person: Bob 模式1 :%s/person:/woman:/c 模式2 :%s/person:/man:/c 模式1和2具有相同的搜索模式,但具有不同的替换模式。我想将它们统一为一种模式,可以选择按(1)进行替换1,(2)进行替换2或按(n)进行不替换。
15 substitute 


2
如何在vim命令行中使用Readline快捷方式?
当我编辑Vim命令时,我想使用与 Bash和所有其他REPL中相同的快捷方式:M-b返回一个单词,M-Backspace删除前一个单词,M-u将该单词转换为大写字母,C-k剪切至我已经能够使用来配置一些命令:cmap,但不是全部。 是否有提供此功能的插件或设置? 我知道cedit,但是当我需要输入快速命令时,我会觉得很麻烦。

2
为什么`cw`和`ce`做同样的事情?
这始终使我对w和W运动命令感到困惑- c与dhange命令一起使用时,它们的工作方式似乎与单独使用或与elete命令一起使用时的工作方式不同。 例如,将光标放在此文本的“ q”上: The quick brown fox jumps over the lazy dog. 在中输入dw结果 The brown fox jumps over the lazy dog. 并在中输入de结果 The brown fox jumps over the lazy dog. (注意“ The”和“ brown”之间的两个空格。) 的yANK命令还对待w和e不同,如可以通过比较显示yeP: The quickquick brown fox jumps over the lazy dog. 和ywP: The quick quick brown fox …

2
搜索包含模式但不包含第二个模式的行
我需要搜索包含一些单词但不包含第二个单词的行。 例如,找到包含单词“ This”但不包含单词“ red”的行 这样对于包含这些行的文件 This is a blue coat This is a red coat This is a purple coat That is a coat 搜索将仅找到第一行和第三行。 感谢您的任何建议!
15 search 

1
如何将下划线视为空格?
vim是否可以将下划线视为空格或连字符,所以当我使用sequence 时,当光标位于开头时dw,它不会删除整个句子some_long_text_with_underscores吗?

2
Vimscript是否有官方名称?
这种语言的名称有时也被称为Vimscript,是一个争论的话题。有些地方使用Viml(或者是VimL?),其他地方则使用Vimscript。它有正式名称吗?如果有,它是什么?从什么时候开始正式使用? 关于VimL vs Vimscript的问题(〜5岁) 最近的一篇帖子提到它有一个正式名称 一系列的:helpgrep \cviml\>尝试导致我们syntax.txt: g:vimsyn_noerror Not all error highlighting that syntax/vim.vim does may be correct; VimL is a difficult language to highlight correctly. 和version7.txt: Added special python-vars objects also available for python-buffer and python-window. They ease access to VimL variables from Python. 因此,这似乎VimL是一个正式术语,但是usr_41.txt,最好地记录了该语言的文件却没有提及VimL。

2
如何为Vim贡献力量?
我已经使用Vim已有4年了。我期待为开源项目vim做出贡献。我想要一些从哪里开始以及与谁联系以为Vim做出贡献的提示。已经为Vim做出贡献的人们的帮助将大有帮助:)。提前致谢。 PS-我什至不确定我是否可以在这里发布此消息,但最终决定将其发布在这里,因为这将是与Vim爱好者交谈最多的地方。

4
通过交织线合并块
有没有一种专门的方法可以通过插入行来合并两个文本块,就像从下面这样传递: a1 a2 a3 a4 b1 b2 b3 b4 对此: a1 b1 a2 b2 a3 b3 a4 b4 在几个命令? 编辑:我真的很喜欢佐藤桂的解决方案,这是我如何实现它: function! Interleave() " retrieve last selected area position and size let start = line(".") execute "normal! gvo\<esc>" let end = line(".") let [start, end] = sort([start, end], "n") let size …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.