在vim中找到光标下的字符

pri*_*srb 41 vim

在vim中,如何在光标下找到下一个字符?我想要类似*但是对于单个字符而不是单词.

例:

H|o|w are you?
Run Code Online (Sandbox Code Playgroud)

去:

How are y|o|u?
Run Code Online (Sandbox Code Playgroud)

我想要它的原因是因为我的文件中有一个看起来奇怪的字符(我甚至不知道如何键入),我想快速删除它们.

seh*_*ehe 75

另外看看

ga (将光标下的字符显示为ascii)

g8 (在光标下显示字符为utf8,包括Unicode内容,十六进制代码等)

最有用的是:

8g8

Find an illegal UTF-8 byte sequence at or after the
        cursor.  This works in two situations:
        1. when 'encoding' is any 8-bit encoding
        2. when 'encoding' is "utf-8" and 'fileencoding' is
           any 8-bit encoding
        Thus it can be used when editing a file that was
        supposed to be UTF-8 but was read as if it is an 8-bit
        encoding because it contains illegal bytes.
        Does not wrap around the end of the file.
        Note that when the cursor is on an illegal byte or the
        cursor is halfway a multi-byte character the command
        won't move the cursor.
Run Code Online (Sandbox Code Playgroud)

更新

使用Tim Pope的vim-characterize插件获取完整的UNICODE名称和数据:

在Vim中,按下 ga 一个字符会显示其十进制,八进制和十六进制的表示形式.

Characterize.vim通过以下附加功能对其进行现代化:

  • Unicode字符名称:U + 00A9 COPYRIGHT SYMBOL
  • Vim有向图(输入后插入字符):Co,cO
  • 表情符号代码::版权:
  • HTML实体:©

  • 这非常有用! (2认同)

Xav*_* T. 32

在一行上,您可以使用fo然后;前进(或,后退).

在多行上,您必须使用/o然后n前进(或N后退).

或者,您的问题可能通过使用正则表达式和替换,即 :%s/[your odd character]//g

要设法复制并粘贴"奇怪的字符",您应该进行视觉使用v以选择字符,然后yESC.

然后输入: :%s/<CTRL+r>"//g

<CTRL+r>" 将在命令行中复制复制寄存器的内容.

  • <CTRL + r>"做了诀窍.感谢您提供有用的提示 (8认同)

Rum*_*kin 12

以下将映射<leader>z(通常\z)

:nnoremap <leader>z xhp/<C-R>-<CR>

如果这对您有用,请告诉我.

  • 谢谢.是的有效.但如果使用yl而不是xhp,它可能会更短. (10认同)