在 Vim 中:如何更改突出显示的部分?

发布于 2024-08-19 22:49:12 字数 533 浏览 7 评论 0原文

cw 改变一个单词。同样,如果我在 vim 中选择了部分(由 / 找到),我如何更改突出显示的部分之一,以便我可以在所有内容中重复(.)该过程其他突出显示的部分。

我知道 %s 可以解决问题。但我想采用 / 方式(视觉满意度)。

编辑:
我正在寻找 c 的扩展程序,例如 w

编辑:
我想做一些类似 c 选定的部分d 选定的部分y 选定的部分等。
就像您所做的 cwdwywct”dt”yt”

cw changes a word. Likewise if I have selected sections in vim (found by /), how do I change one of the highlighted section, so that I can repeat(.) the process in all of the other highlighted sections.

I know %s will do the trick. But I wanted to go this the / way (visual satisfaction).

Edit:
I am looking for an extender to c like w

Edit:
I want to do something like c selected section or d selected section or y selected section etc .
Like you do cw, dw, yw or ct”, dt” or yt”

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

美羊羊 2024-08-26 22:49:12

像平常一样使用 /foo 查找文本,然后使用 c//e - 但请确保使用 // 而不仅仅是 /n 查找后续匹配项。

(//e 表示重复上次搜索,但光标放置在单词的末尾,而不是开头。但是,会记住 e 标志下一个搜索,这就是为什么您之后需要使用 // 。)

Find your text with /foo as usual, then use c//e - but make sure you use // instead of just / or n to find the subsequent matches.

(//e means the last search is repeated, but the cursor is placed at the end of the word, not the beginning. However, the e flag is remembered for the next search, which is why you need to use // afterwards.)

三生池水覆流年 2024-08-26 22:49:12

使用 / 搜索字符串不会选择它 - 它只会突出显示它。

要选择文本区域,请单击并将鼠标拖动到其上,或者在正常模式下使用 vVctrl-v 键(分别通过线条或矩形区域选择正常区域),然后使用常用的移动键进行导航以扩展选择。这将使您进入视觉选择模式。

一旦您突出显示了一些文本并处于可视选择模式,您就可以使用普通编辑命令来更改突出显示的文本,例如 c 将删除文本并让您进入插入模式,y< /code> 将拉出文本,gU 将更改文本大写,g? 将对其进行 ROT13 等等。

输入编辑命令后,您将恢复正常模式和视觉亮点将消失。您可以使用 gv 重新选择同一区域。

Searching for a string with / does not select it - it only highlights it.

To select a region of text click and drag the mouse over it or use the v, V or ctrl-v keys in normal mode (to select a normal region, by lines or rectangular region respectively) then navigate with the usual movement keys to extend the selection. This will put you into visual selection mode.

Once you have some text highlighted and are in visual selection mode you can use the normal editing commands to change the highlighted text, e.g. c will delete the text and put you into insert mode, y will yank the text, gU will change the text uppercase, g? will ROT13 it, etc.

Once you have entered the edit command you will go back into normal mode and the visual highlight will vanish. You can reselect the same region with gv.

莫多说 2024-08-26 22:49:12

如果您想直观地批准每个更改,您可以执行

:%s/old/new/gc

编辑:
从其他答案来看,似乎没有办法轻松进行选择。也许您可以使用 Vim 中的 python 脚本功能来编写命令来执行您想要的操作?

If you want to visually approve each change you could do

:%s/old/new/gc

Edit:
From the other answers sounds like there's no way to get the selection easily. Maybe you could use the python scripting capability in Vim to write a command to do what you want?

手心的温暖 2024-08-26 22:49:12

试试这个:

:s//new_value

为什么投反对票?您可以映射类似的内容:

:nmap \s :s///<cr>``i

然后搜索文本,点击映射,您将处于搜索文本原来所在的插入模式。您不能使用 .,但可以在下一场比赛中使用 n\s

据我所知,没有内置的文本对象来描述搜索找到的文本。

Try this:

:s//new_value

Why the downvote? You can map something like:

:nmap \s :s///<cr>``i

then search for your text, hit the mapping and you'll be in insert mode where your search text used to be. You can't use . but you can just use n\s for the next match.

There is no builtin text-object describing the text found by a search as far as I know.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文