如何将 LaTeX 命令和环境包装器应用于 ViM 中的单行或多行可视选择?
Posted
技术标签:
【中文标题】如何将 LaTeX 命令和环境包装器应用于 ViM 中的单行或多行可视选择?【英文标题】:How can I apply LaTeX command and environment wrappers to singleline or multiline Visual Selections in ViM? 【发布时间】:2016-06-17 11:35:28 【问题描述】:我修改了我在这里找到的一些代码以适用于 LaTeX。我演示了两种情况的所需输出。请看一下
处理 LaTeX 命令 处理 LaTeX 环境http://vim.wikia.com/wiki/Wrap_a_visual_selection_in_an_html_tag
处理 LaTeX 命令
给定:
elephant
-
直观地选择“大象”
按 F7
输入“测试”
输出:
\testelephant
VisualcommandTagWrap
的示例代码代码
这适用于单行选择。 我想让它适用于多行选择。 只需使用视觉选择器选择要换行的文本,然后按 F7。
" Wrap visual selection in a latex command tag.
map <F7> : call VisualcommandTagWrap()
function! VisualcommandTagWrap()
let tag = input("Tag to wrap block: ")
if len(tag) > 0
normal `>
if &selection == 'exclusive' "set selection=exclusive means position before the cursor marks the end of the selection vs. inclusive
exe "normal i\\".tag.""
else
exe "normal a\"
endif
normal `<
exe "normal i\\".tag.""
normal `<
endif
endfunction
处理 LaTeX 环境
给定:
elephant
-
直观地选择“大象”
按 F7
输入“测试”
输出:
\begintest
elephant
\endtest
VisualenvironmentTagWrap
的示例代码
我不知道如何实现覆盖多行的功能。
其他示例
对于那些不熟悉 LaTeX 的人。有两种情况可以满足 LaTeX 命令和环境的要求。
Here is some visual mode selected text.
And another line of visual mode selected text.
指挥情况:
-
键入.vimrc 中定义的函数键来调用函数
vim 提示用户输入(例如“请输入命令名称:”)
vim 用命令包围选择。
结果:
\inputstep2Here is some visual mode selected text.
And another line of visual mode selected text.
环境状况
-
键入.vimrc 中定义的函数键来调用函数
vim 提示用户输入(例如“请输入环境名称:”)
vim 用环境包围选择。
结果:
\begininputstep2
Here is some visual mode selected text.
And another line of visual mode selected text.
\endinputstep2
【问题讨论】:
【参考方案1】:第 1 步:
您可以将所需的文本(如test
)存储在寄存器a
中。
:let @a='test'
(直到你改变它,它会保持不变并且可以重复使用。如果你想改变它,你必须再次按照这个步骤。)
第 2 步:
然后,使用视觉选择(v
、V
或ctrl V
)选择文本,然后按 Escape 取消选择。
第 3 步;
将光标保持在屏幕上的任意位置(最好在要包围的行中)并在正常模式下按\s
。
将以下映射放在 ~/.vimrc 文件中。 让我们创建一个映射来环绕。
对于第一个例子:(开始和结束类型)
:nmap \s '<O\begin<C-R>a<ESC>'>o\end<C-R>a
第二个例子:(开始类型)
:nmap \s '<O\<C-R>a<ESC>'>a
【讨论】:
这不像原始帖子的版本那样动态。 如果你能给出一个或多个不同的例子,我会尽量给它通用的:) 如果您试用VisualcommandTagWrap
,您会看到它会提示您输入文本(例如Tag to wrap block:
)。在您的答案中输入将是“测试”以产生\begintestvisualselection\endtest
好的,我将修改答案以实现与您所说的类似的功能。由于我不知道乳胶,如果您能提供更多示例和预期输出会更好。
我又添加了两个示例,一个用于命令,一个用于环境。以上是关于如何将 LaTeX 命令和环境包装器应用于 ViM 中的单行或多行可视选择?的主要内容,如果未能解决你的问题,请参考以下文章