首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Vim 8.0疑案:`:au BufRead`处理程序中的`:r!`命令导致不必要的副作用

在Vim 8.0版本中,:au BufRead命令用于在读取缓冲区内容时执行自定义的处理程序。其中,:r!命令用于将外部命令的输出插入到当前缓冲区中。然而,在某些情况下,使用:r!命令可能会导致一些不必要的副作用。

:r!命令的主要问题是它执行外部命令并将其输出插入到当前缓冲区中,但它不会检查输出是否包含特殊字符或命令。这可能导致一些潜在的安全风险,例如执行恶意命令或插入不可见的字符。

为了避免这些潜在的问题,建议在:au BufRead处理程序中使用:read!命令代替:r!命令。:read!命令与:r!命令类似,但它会自动进行输出过滤,确保插入到缓冲区中的内容是安全的。

此外,为了更好地处理外部命令的输出,可以使用Vim的过滤器功能。通过使用!运算符,可以将外部命令的输出作为过滤器的输入,并将过滤器的输出插入到当前缓冲区中。例如,可以使用!grep命令来过滤缓冲区中的内容。

总结起来,为了解决Vim 8.0版本中:au BufRead处理程序中的:r!命令可能导致的不必要副作用,建议采取以下措施:

  1. 使用:read!命令代替:r!命令,以确保输出内容的安全性。
  2. 使用过滤器功能来处理外部命令的输出,以便更好地控制插入到缓冲区中的内容。

腾讯云相关产品推荐:

  • 云服务器(CVM):提供可扩展的计算能力,适用于各种应用场景。详情请参考:云服务器产品介绍
  • 云数据库 MySQL 版(CDB):提供高性能、高可靠的关系型数据库服务。详情请参考:云数据库 MySQL 版产品介绍
  • 云存储(COS):提供安全、稳定、低成本的对象存储服务,适用于海量数据存储和访问。详情请参考:云存储产品介绍
  • 人工智能平台(AI Lab):提供丰富的人工智能算法和模型,帮助开发者快速构建智能应用。详情请参考:人工智能平台产品介绍

请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

从通用规则中学习Nginx模块定制指令

所以,即使下面这行指令出现了r/s(每秒处理请求数)这样新定义单位,仍然是合法: limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;...这是因为contrib/vim/ftdetect/nginx.vim文件定义了仅对4类配置文件使用语法高亮规则: //对所有.nginx后缀配置文件语法高亮 au BufRead,BufNewFile...*.nginx set ft=nginx //对/etc/nginx/目录下配置文件语法高亮 au BufRead,BufNewFile */etc/nginx/* set ft=nginx /...,名为nginx.conf文件语法高亮 au BufRead,BufNewFile nginx.conf set ft=nginx 因此,你可以将这类文件后缀名改为.nginx,或者将它们移入/etc...块配置出现了错误,可能是缺失了大括号,或者未转义字符导致无法识别出大括号。

1.4K10
  • vim常用设置—(.vimrc详细配置)

    ,而是vim自己 set nocompatible ” history文件需要记录行数 set history=100 ” 在处理未保存或只读文件时候,弹出确认 set confirm...setlocal noswapfile set bufhidden=hide ” 字符间插入像素行数目 set linespace=0 ” 增强模式命令行自动完成操作 set...” 命令行(在状态行下)高度,默认为1,这里是2 set cmdheight=2 ” 使回格键(backspace)正常处理indent, eol, start等 set backspace...=atI ” 通过使用: commands命令,告诉我们文件哪一行被改变过 set report=0 ” 不让vim发出讨厌滴滴声 set noerrorbells ” 在被分割窗口间显示空白...() ” 高亮显示普通txt文件(需要txt.vim脚本) au BufRead,BufNewFile * setfiletype txt ” 用空格键来开关折叠 “set foldenable

    1.8K10

    Cygwin环境下vim配置

    ,而是vim自己 set nocompatible " history文件需要记录行数 set history=100 " 在处理未保存或只读文件时候,弹出确认 set confirm..." 在状态行上显示光标所在位置行号和列号 set ruler set rulerformat=%20(%2*%<%f%=\ %m%r\ %3l\ %c\ %p%%%) " 命令行(在状态行下...() " 高亮显示普通txt文件(需要txt.vim脚本) au BufRead,BufNewFile * setfiletype txt " 用空格键来开关折叠 set foldenable...,而是vim自己 set nocompatible " history文件需要记录行数 set history=100 " 在处理未保存或只读文件时候,弹出确认 set confirm...() " 高亮显示普通txt文件(需要txt.vim脚本) au BufRead,BufNewFile * setfiletype txt " 用空格键来开关折叠 set foldenable

    3.6K10

    从通用规则中学习Nginx模块定制指令

    所以,即使下面这行指令出现了r/s(每秒处理请求数)这样新定义单位,仍然是合法: limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;...这是因为contrib/vim/ftdetect/nginx.vim文件定义了仅对4类配置文件使用语法高亮规则: //对所有.nginx后缀配置文件语法高亮 au BufRead,BufNewFile...*.nginx set ft=nginx //对/etc/nginx/目录下配置文件语法高亮 au BufRead,BufNewFile */etc/nginx/* set ft=nginx /...,名为nginx.conf文件语法高亮 au BufRead,BufNewFile nginx.conf set ft=nginx 因此,你可以将这类文件后缀名改为.nginx,或者将它们移入/etc...块配置出现了错误,可能是缺失了大括号,或者未转义字符导致无法识别出大括号。

    1.4K20

    轻松搞定VIM高亮NGINX配置文件方法

    前言 众所周知在默认设置下,vim不会对nginx配置文件做语法高亮处理,需要手动开启这一功能。那么如何手动开启呢?下面来一起看看详细实现方法。...下载nginx.vim 这里以Linux系统为例,其它系统大同小异。 切换到vim语法配置目录并下载nginx语法文件。 需要注意路径vim74需要与机器上安装vim版本号相对应。...src_id=19394 配置filetype.vim 编辑filetype.vim文件来注册nginx语法文件 vim /usr/share/vim/vim74/filetype.vim 在文件中加入以下代码...,其中nginx_path需要替换成机器上nginx配置文件目录,例如/etc/nginx/*: " nginx au BufNewFile,BufRead nginx_path setf nginx...总结 以上就是这篇文章全部内容了,希望本文内容对大家学习或者工作具有一定参考学习价值,如果有疑问大家可以留言交流,谢谢大家对ZaLou.Cn支持。

    1.6K31

    VIM个性化配置(一)

    ycm_extra_conf.py提示 let g:ycm_key_list_select_completion = ['', ''] " 映射按键,没有这个会拦截掉tab, 导致其他插件...插件 " Plugin 'taglist.vim' "ctags 配置:F3快捷键显示程序各种tags,包括变量和函数等。...,而是vim自己 set nocompatible " 语法高亮 set syntax=on " 去掉输入错误提示声音 set noeb " 在处理未保存或只读文件时候,弹出确认 set confirm..." 带有如下符号单词不要被换行分割 set iskeyword+=_,$,@,%,#,- " 字符间插入像素行数目 set linespace=0 " 增强模式命令行自动完成操作 set wildmenu...scrolloff=3 " 为C程序提供自动缩进 set smartindent " 高亮显示普通txt文件(需要txt.vim脚本) au BufRead,BufNewFile * setfiletype

    1.4K20

    Vim终极配置方案,完美的写代码界面! ——.vimrc

    还有创建源文件自动添加头文件功能,例如写一个.c程序 自动添加了写在配置文件里信息,包括作者名,邮箱,时间和程序头文件等。...ycm_extra_conf.py提示 let g:ycm_key_list_select_completion = ['', ''] " 映射按键,没有这个会拦截掉tab, 导致其他插件...插件 " Plugin 'taglist.vim' "ctags 配置:F3快捷键显示程序各种tags,包括变量和函数等。..." 带有如下符号单词不要被换行分割 set iskeyword+=_,$,@,%,#,- " 字符间插入像素行数目 set linespace=0 " 增强模式命令行自动完成操作 set wildmenu...scrolloff=3 " 为C程序提供自动缩进 set smartindent " 高亮显示普通txt文件(需要txt.vim脚本) au BufRead,BufNewFile * setfiletype

    8.3K51

    Gvim入门(3)——简易配置pytho

    用Gvim配置python编写环境最重要也是最基本一项就是要在Gvim配置启动文件,也就是在安装目录下_vimrc添加配置python解释器代码。然而前提是要有配置好环境变量。...(2)测试python配置环境变量是否成功: 在win+r,键入cmd,在dos(命令提示符)中键入python,如果结果是下图情况,表示python环境变量配置成功。 ?...(3)修改_vimrc文件: 在_vimrc文件找个适当位置,将如下代码粘贴保存。...;\ py_compile.compile(r'%')\" autocmd BufRead *.py set efm=%C\ %....(4)用vim打开一个python文件,或随意写个helloworld程序,试试能否成功打印。如果可以的话,那就congratulations!你Gvim可以写python程序并且解释执行它了。

    76610

    vim-神之编辑器-命令汇总笔记

    ctrl + r       撤销掉撤销这个命令, 7:粘贴 p      将最后一次删除内容置入光标止呕。 8:替换 r    替换光标所在位置字符。...R    输入替换文本 ce  删除该单词,并且进入插入模式 cw 同上 c$ 删除光标到行末: :#,#s/old/new/g   其中 #,# 代表是替换操作若干行首尾两行行号。...而#命令相当于?搜索。 11:程序命令, %    查找括号类匹配另一个。 !     ...:e 然后ctrl+d 显示e开始命令    列表 ctrl +w 在打开多个窗口之间跳转 附上额外编辑 .vimrc 配置文件 放在用户目录下,如果“为中文,需要全部替换成英文下vim命令:...evening  “颜色模式 syn on  “语法高亮 filetype on “文件类型 set encoding=utf-8 “编码为utf8 au BufRead *.py map <buffer

    1K30

    golang实战-1:搭建vim-go开发环境

    Python版本:3.6.8,pthon3版本差异也会导致出现问题; YouCompleteMe版本:master最新; Vim版本:8.1-2171 go版本:version go1.13.3...由于这个选项是最最基础选项,会连带很多其它选项发生变动(称作副作用),所以它必需是第一个设定选项。...,默认为1,这里设为2 " 每行超过80个字符用下划线标示 au BufRead,BufNewFile *.asm,*.c,*.cpp,*.java,*.cs,*.sh,*.lua,*.pl,...安装好后,命令输入vim,打开vim后,在vim输入:NERDTree,你就可以看到NERDTree效果了。...u 将当前根结点父目录设为根目录,并变成合拢原根结点 U 将当前根结点父目录设为根目录,但保持展开原根结点 r 递归刷新选中目录 R

    3.5K20

    vim配置文件修改

    =indent  set foldlevel=3  set foldenable              " 开始折叠 " 不要使用vi键盘模式,而是vim自己 set nocompatible..." 语法高亮 set syntax=on " 去掉输入错误提示声音 set noeb " 在处理未保存或只读文件时候,弹出确认 set confirm " 自动缩进 set autoindent..." 带有如下符号单词不要被换行分割 set iskeyword+=_,$,@,%,#,- " 字符间插入像素行数目 set linespace=0 " 增强模式命令行自动完成操作 set...+=,h,l " 可以在buffer任何地方使用鼠标(类似office在工作区双击鼠标定位) set mouse=a set selection=exclusive set selectmode...3行距离 set scrolloff=3 " 为C程序提供自动缩进 set smartindent " 高亮显示普通txt文件(需要txt.vim脚本) au BufRead,BufNewFile

    2.4K20
    领券