gpt4 book ai didi

vim - 在 Vim 中完成空格分隔的单词

转载 作者:行者123 更新时间:2023-12-02 20:38:44 26 4
gpt4 key购买 nike

我经常喜欢完成更多只是一个 Vim 关键字。例如,我想完成任意路径名或类似 self.logger.debug("...") 的内容我已经在我的文本文件中找到了它。

C-n 和 C-p 使用 'iskeyword'选项,因此仅完成 Vim 关键字。

实现空格分隔单词补全的最佳方法是什么?

inoremap <C-m> ???

我唯一的想法就是改变'iskeyword' ,使用正常的单词补全,然后重置 'iskeyword'在那之后。

最佳答案

@Ingo Karkat 和 @Luc Hermitte 都提供了出色的解决方案。但是,如果您想在本地执行此操作,那么 Vim 提供了一些可能对您有所帮助的解决方案。通常完成使用普通 <c-n>/<c-p > 然而,有一个通过 <c-x> 访问的完成子模式.

文件名完成

使用<c-x><c-f>开始完成文件名。您可以使用<c-n>/<c-p>就像您通常在开始完成后在选项之间移动一样。如果完成在目录中结束(例如 /usr/bin/ ),则只需执行 <c-x><c-f>开始完成该目录。

整行完成

如果您经常使用同一行,但不值得制作片段或缩写,则输入您想要的行的开头,然后 <c-x><c-l > 开始完成行。然后只需使用 <c-n>/<c-p>像平常一样。

多词补全

您可以使用<c-x><c-n>/<c-x><c-p>完成当前单词后面的另一个单词。如果不尝试的话,这个问题有点难以解释。

假设您有以下文本:

self.logger.debug("foo")

假设您想要另一个 self.logger.debug别的地方。

  • 所以输入:sel然后使用<c-p>按照您通常填写的方式填写 self
  • 然后使用<c-x><c-p>完成self.logger (可能需要执行一些 <c-p>/<c-n> 才能到达 .logger )。
  • 一次self.logger完成后使用<c-x><c-p>再次为.debugger部分。

注意:这确实使用 iskeyword因此它可能不会完全按照您想要的方式完成,但应该非常接近。

获取更多帮助

:h ins-completion
:h compl-whole-line
:h compl-current
:h compl-filename
:h 'complete'

关于vim - 在 Vim 中完成空格分隔的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46450682/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com