Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是什么导致vim exec所需的“\”数量不对称?_Vim - Fatal编程技术网

是什么导致vim exec所需的“\”数量不对称?

是什么导致vim exec所需的“\”数量不对称?,vim,Vim,考虑以下文件,不知羞耻地从中窃取 假设我试图找到这两类标题上面的文本,我写了下面的表达式 :onoremap <buffer> ih :<c-u>execute "normal! ?^\\(==\\+\\|--\\+\\)$\r:nohlsearch\rkvg_"<cr> 这似乎非常违反直觉,因为\可以在字符串中用\\表示,而\+可以在字符串中用\\+表示 为什么“需要”来代表 我正试图为原因建立一个心理模型,这样我就可以对未来的案例进行这样的推理。双引号中

考虑以下文件,不知羞耻地从中窃取

假设我试图找到这两类标题上面的文本,我写了下面的表达式

:onoremap <buffer> ih :<c-u>execute "normal! ?^\\(==\\+\\|--\\+\\)$\r:nohlsearch\rkvg_"<cr>
这似乎非常违反直觉,因为\可以在字符串中用\\表示,而\+可以在字符串中用\\+表示

为什么“需要”来代表


我正试图为原因建立一个心理模型,这样我就可以对未来的案例进行这样的推理。

双引号中的反斜杠只需要转义一次,这样\\就会给出'\。但是|需要转义两次,一次转义双引号,另一次转义是因为否则它将结束:map命令。出于这个原因,我强烈建议使用而不是映射的内部。这记录在。

:帮助地图栏下
:onoremap <buffer> ih :<c-u>execute "normal! ?^\\(==\\+\\|--\\+\\)$\r:nohlsearch\rkvg_"<cr>
:onoremap <buffer> ih :<c-u>execute "normal! ?^\\(==\\+\\\\|--\\+\\)$\r:nohlsearch\rkvg_"<cr>