在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实体:©
Xav*_* T. 32
在一行上,您可以使用fo
然后;
前进(或,
后退).
在多行上,您必须使用/o
然后n
前进(或N
后退).
或者,您的问题可能通过使用正则表达式和替换,即 :%s/[your odd character]//g
要设法复制并粘贴"奇怪的字符",您应该进行视觉使用v以选择字符,然后yESC.
然后输入:
:%s/<CTRL+r>"//g
<CTRL+r>"
将在命令行中复制复制寄存器的内容.
Rum*_*kin 12
以下将映射<leader>z
(通常\z
)
:nnoremap <leader>z xhp/<C-R>-<CR>
如果这对您有用,请告诉我.