如何执行特定于文件的命令?

时间:2015-08-27 12:11:18

标签: linux vim

我有一个文件read.html,每次我将某些东西(例如从网页上)粘贴到文件中时,我希望原始的html格式也会与纯文本一起粘贴。这是一个可以实现目标的vim命令,

set cb^=html

但是当我将某些东西粘贴到其他文件中时,我不想附加html格式,因此每次我只想要纯文本时,我都必须执行此命令,

set cb-=html

这可能非常不方便,因为我必须时不时地执行这两个命令。那么有一种方法可以在当前文件为read.html时粘贴html格式和纯文本,并且只在当前文件不是read.html时粘贴纯文本吗?

4 个答案:

答案 0 :(得分:1)

您可能想要使用setlocal:

setlocal cb^=html

http://vimdoc.sourceforge.net/htmldoc/options.html#:setlocal

  

喜欢":设置"但只设置本地值               当前缓冲区或窗口。并非所有选项都有               本地价值。如果该选项没有本地选项               值设置全局值。               随着"所有"参数:显示所有的本地值               当地的选择。

答案 1 :(得分:1)

您可以使用BufEnter自动命令。

   autocmd BufEnter *  if (&ft ==# 'html') | set cb^=html | else | set cb-=html | endif

答案 2 :(得分:0)

可能最简单的方法是创建一个切换html选项的映射。

nnoremap <key> set <C-R>=(&clipboard =~# "html") ? 'clipboard-=html' : 'clipboard+=html'<CR><CR>

答案 3 :(得分:0)

最后我决定使用地图

nnoremap html :set cb^=html<CR>"+p:set cb-=html<CR>

所以每次我想粘贴html时,我只需要输入html,它也不会影响其他文件。