我有一个键盘映射,我在之前回答的问题中发布了:
VIM - Sourcing tags from multiple locations in project
我想知道是否可以使这个映射成为一组函数的多行映射,以便它在我的.vimrc
文件中更整洁。该命令目前是一个巨大的单行:
" Create a mapping to delete the old tags, re-generate them, and use them
map <F10> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q . \| rm -f $SDK_SRC_PLUS_HEADERS/tags \| ctags -R -f $SDK_SRC_PLUS_HEADERS/tags $SDK_SRC_PLUS_HEADERS/tags \| rm -f $THIRD_PARTY_SDK/tags \| ctags -R -f $THIRD_PARTY_SDK/tags $THIRD_PARTY_SDK/tags \| echo "Done re-generating tags."<CR>
VIM是否支持某种转义序列,因此我可以将映射分解为更可读和块对齐的内容,如下所示:
" Create a mapping to delete the old tags, re-generate them, and use them
map <F10> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
\| rm -f $SDK_SRC_PLUS_HEADERS/tags
\| ctags -R -f $SDK_SRC_PLUS_HEADERS/tags $SDK_SRC_PLUS_HEADERS/tags
\| rm -f $THIRD_PARTY_SDK/tags
\| ctags -R -f $THIRD_PARTY_SDK/tags $THIRD_PARTY_SDK/tags
\| echo "Done re-generating tags."<CR>
我尝试了很多逃脱序列,但没有运气。
提前谢谢大家。
答案 0 :(得分:1)
为什么不将它作为shell脚本并在一行中简单地引用它?
这样你就可以在vim之外轻松测试它,并在其他工具中使用它。
要回答下面的问题,如果您的环境变量是在与vim相同的会话中导出的(并且在vim之前),那么无论您以后更改它们,它们对于子流程都将保持相同。