Vi & Vim

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

3
如何跳到缓冲区中间
通过按gg和G您可以跳到缓冲区的两端。 42G 跳到第42行。 是否有任何快速g捷径可跳到缓冲区的中间。大概是round(number of lines/2)G什么?

4
如何用拉动的文本替换内部文本
我经常遇到的一种编辑模式如下:我想拉引号或方括号内的一段文本,并替换另一对引号/方括号内的一段文本。 例如,如果我想复制类名foo bar并将其粘贴到其他地方: <span class="foo bar"> <div class="this-should-be-replaced-with-foo-and-bar"> 我所知道的是:如果我在span的类内移动,我通常会yi"在引号内插入文本。 现在,我将其保存在寄存器中,因此应该可以用它替换div的类内容。但是我找不到方便的方法。 如果我使用ciw它,最终会覆盖内容以更改内容,因此我会丢失被选中的文本。 我能想到的最好的办法是移至div类的第一引号p,然后单击,然后删除至下一个引号dt"。 通常,我通常会弄乱自己的位置,然后将其粘贴到合并两个字符串的引号中的某个位置,这会使事情变得混乱。 我希望可以通过某种方式进行“请用需要替换的内容替换内部文本”组合,以使此操作更容易。

3
Windows 10上的Neovim-准备好了,如何设置?
我被困在Windows 10上,想给Neovim一炮而红。准备好了吗,还是我现在应该只设置我的vim配置?我真的没有在窗户下看过任何有关Neovim的视频或文章,但是在谷歌搜索时,我发现有一些视频或文章使我相信可能存在尚未充分解决的问题。

5
Vim语法模式突出显示python关键字参数
我正在努力学习vim正则表达式(我也不太了解其他正则表达式),所以主要问题是定义匹配的正则表达式 some_function_call(simple_value, keyword=value) 此示例中的关键字。 因此,如果它在括号内并且后跟等号,则应该匹配一个单词。 下一个问题是如何在vim中定义语法文件。我很乐意为此提供帮助,但是学习起来应该不难,所以我可以自己做。 根据答案进行编辑我已经为python编写了自己的语法脚本。随时尝试。 在此处输入链接说明




1
当我拼错一个单词时,如何让vim听到终端铃声?
我做了很多转录,在不看屏幕的情况下以100+ wpm的速度输入。我认为,如果拼写检查器刚刚标记了最后一个单词,vim可以给我某种听得见的提示(可能表示我打错了,应该仔细检查我写的内容)会很有用。 当我按下空格键时,拼写检查器绝对可以语法高亮显示拼写错误的单词。这是如何运作的?有没有办法同时运行某种命令? 我总是在终端上使用vim;我现在没有设置终端铃,但是如果那是最简单的方法,我可能可以使它工作。

4
我可以重复上一个UI命令吗?
我知道我可以.用来重复上一个编辑命令。 有没有办法重复上一个UI操作命令?例如,我可以写成10<C-W>-将窗口缩小十行。如果我想进一步缩小命令范围,可以按⟨ 一些键 easily轻松地重复此命令,将是很好的选择。

1
行内更详细的比较
我vimdiff经常检查文件之间的差异,有时它会漏掉一点。例如,如果我有以下两个文件: //a.c printf("Hello\n"); 和: //b.c int i = printf("hello\n") + 3; 显示他们vimdiff给: 我将要看到的是,在BC中,h大写字母不大写。 有没有办法告诉vimdiff比较(在那一行中)它的一部分(我的意思是,忽略the int i =和the + 3)?
17 vimdiff 

4
如何设置Vim以每行一个句子使用?
我目前正在写很多纯文本(以及LaTeX,段落中的格式最少),如果可以设置vim保留每个句子(为简单起见,文本以'。','!或“?”;这是一个终止标点符号,后跟一个空格,以避免在其自己的行上出现小数点),因此VCS差异将更加有用。 最少,我想gq格式化以下文本: He lay flat on the brown, pine-needled floor of the forest, his chin on his folded arms, and high overhead the wind blew in the tops of the pine trees. The mountainside sloped gently where he lay; but below it was steep and he could see the dark …

1
我如何在Fedora 20中获得+剪贴板支持?
在我看来,无论是"+p也不是"*p为我工作。我怎么知道我的Vim是否已安装并正确设置以使其可用?如果未设置,该怎么办? 我正在使用Mate 18.1运行Fedora 20。我已经安装了vim-enhanced和vim-x11软件包。 和我的Vim版本: $ vim --version VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Oct 13 2014 08:56:57) Included patches: 1-207, 209-475 Modified by <bugzilla@redhat.com> Compiled by <bugzilla@redhat.com> Huge version without GUI. Features included (+) or not (-): +acl +farsi +mouse_netterm +syntax +arabic +file_in_path +mouse_sgr +tag_binary +autocmd …

4
将文本从一个拆分窗口发送到另一个
最近,NeoVim有一个附加组件,它允许在vim缓冲区中打开终端。这具有将文本从一个vim窗口发送到另一个副本的吸引力,例如,类似于REPL的行为。 过去,我使用tmux进行这种配置。但是现在我只想使用NeoVim尝试一下。 我的问题是-如何将一个vim拆分的文本块发送到另一个?或许更确切地说-如何使选择文本,拉动文本,更改拆分然后粘贴的顺序自动化?

4
如何显示所有打开的缓冲区的搜索结果
我经常做的一件事(但要依靠命令行来做)是在多个文件中搜索/查找。 有没有一种方法可以显示所有打开的缓冲区的搜索结果? 理想情况下,我希望有一个新的包含结果位置和摘要的拆分缓冲区,就像这样grep做一样。例如(/statistics): models/statistics.php: /*! \file statistics.php controllers/stats.php: $this->load->model('statistics'); controllers/stats.php: // Query statistics... controllers/stats.php: $num_exams = $this->statistics->countExams(); 另外,我很想能够在光标下搜索该词gd。

2
没有给任何文件名时,如何使Vim使用默认文件名?
我很少(如果有的话)只打开vim没有文件名的文件。通常,我想测试一些东西,通常是一个快速扔掉的脚本,而且我通常给它们命名test.sh(或其某种变体,例如test.py)。如果我不带任何文件名运行,是否可以vim假定test.sh文件vim名?我通常会使用别名(例如vimsfor vim test.sh和vimpfor vim test.py,或完整使用:w test.sh),但我想知道是否有办法解决这个问题vim。如果我可以将其限制为某些目录(如/tmp或),那就更好了~/dev。
17 vimrc  startup 

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.