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缩写中使用反斜杠_Vim - Fatal编程技术网

在vim缩写中使用反斜杠

在vim缩写中使用反斜杠,vim,Vim,我希望能够编写\bit,并将其扩展到vim中的某些内容。但是,如何在缩写的左侧对反斜杠进行编码 我尝试了所有这些: :iab \bit replacement_text :iab <Bslash>bit replacement_text :iab <bs>bit replacement_text :iab\bit替换\u文本 :iab位替换\u文本 :iab位替换\u文本 但是得到了所有这些的E474:无效参数 map\u反斜杠帮助主题建议使用,但这似乎不起作用。您可

我希望能够编写
\bit
,并将其扩展到vim中的某些内容。但是,如何在缩写的左侧对反斜杠进行编码

我尝试了所有这些:

:iab \bit replacement_text
:iab <Bslash>bit replacement_text
:iab <bs>bit replacement_text
:iab\bit替换\u文本
:iab位替换\u文本
:iab位替换\u文本
但是得到了所有这些的
E474:无效参数

map\u反斜杠
帮助主题建议使用
,但这似乎不起作用。

您可以

   inoremap \bit replacementtext
另外,如果你不喜欢滞后,可以选择backtick`(在我的标签上方)这样的替代领导者


如果代码中不经常使用缩写,可以在“位”上定义缩写,然后测试其前面是否有“\”,如果是,则返回新文本,否则返回“位”

function! s:Expr(default, repl)
  if getline('.')[col('.')-2]=='\'
    return "\<bs>".a:repl
  else
    return a:default
  endif
endfunction

:inoreab bit <c-r>=<sid>Expr('bit', 'foobar')<cr>

如果缩写后面只有一个字符,则只能使用反斜杠作为前缀,因此
:iab\b replacementtext
将起作用。

我建议两边都使用反斜杠,vim很高兴这样做:

inoreabbr \bit\ replacement_text
请注意,我使用的是abbr的“nore”版本,如果您不打算进行递归扩展,最好弄清楚。我长期以来一直在使用以下缩写,它们非常有效:

inoreabbr \time\ <C-R>=strftime("%d-%b-%Y @ %H:%M")<CR>
inoreabbr \date\ <C-R>=strftime("%d-%b-%Y")<CR>
inoreabbr\time\=strftime(“%d-%b-%Y@%H:%M”)
inoreabbr\date\=strftime(“%d-%b-%Y”)

在vimrc_-tex中(或仅vimrc)可以完美地工作。

这可以工作,但不是完全相同的方式。在每次等待之后都会有一个恼人的停顿。不过,我不太明白如何解决这个问题。我有几个IMAP(使用=进行一些函数处理)可以解决这个问题,你可以通过暂停(它迫使你键入更快:)aaarrghh!这是一个饼干。我了解到,你是一个{rhs}东西。在{lhs}中,“\b”(w/o引号)起作用,但当添加第二个字符“\bi”时,E474就在那里。“\\”和“\\b”可以接受,但“\\bi”不能接受“\bit””(不带外部单引号)有效,但双引号是ab的一部分。就像我说的,“aaarrghh!”+1如果你把它放在一个答案@Ewan中,我可以投票支持它,并且更容易看到引号。这是有趣的东西…创造性的选择。尾随的反斜杠将其转换为允许的非id缩写。
InoreabBSlash <buffer> locbit foobar
InoreabBSlash bit foobar
inoreabbr \bit\ replacement_text
inoreabbr \time\ <C-R>=strftime("%d-%b-%Y @ %H:%M")<CR>
inoreabbr \date\ <C-R>=strftime("%d-%b-%Y")<CR>
:set iskeyword+=\