ITPub博客

首页 > 数据库 > Oracle > [20240928]vim设置set paste问题.txt

[20240928]vim设置set paste问题.txt

原创 Oracle 作者:lfree 时间:2024-09-29 20:58:08 0 删除 编辑

[20240928]vim设置set paste问题.txt

--//有时候从windows环境拷贝并粘贴到linux环境,会出现折行现象,要手工执行set paste,再做操作。
--//我发现vim的一些设置失效,比如set ruler设置,简单探究看看问题在哪里,开始并不知道是set paste引起的问题。

$ vim --startuptime aa.txt
--//这样aa.txt会记录vim启动读取的脚本。

$ grep "sourcing /" aa.txt  | awk '{print $NF}'
/usr/share/vim/vim74/syntax/syncolor.vim
/usr/share/vim/vim74/syntax/synload.vim
/usr/share/vim/vimfiles/ftdetect/stp.vim
/usr/share/vim/vim74/filetype.vim
/usr/share/vim/vim74/syntax/syntax.vim
/usr/share/vim/vim74/filetype.vim
/usr/share/vim/vim74/ftplugin.vim
/usr/share/vim/vim74/syntax/syncolor.vim
/usr/share/vim/vim74/syntax/syncolor.vim
/usr/share/vim/vim74/syntax/syncolor.vim
/usr/share/vim/vim74/colors/elflord.vim
/etc/vimrc.zws
/etc/vimrc
/usr/share/vim/vimfiles/plugin/cctree.vim
/usr/share/vim/vim74/plugin/bccalc_linux.vim
/usr/share/vim/vim74/plugin/gdb.vim
/usr/share/vim/vim74/plugin/getscriptPlugin.vim
/usr/share/vim/vim74/plugin/gzip.vim
/usr/share/vim/vim74/plugin/increment.vim
/usr/share/vim/vim74/plugin/matchparen.vim
/usr/share/vim/vim74/plugin/netrwPlugin.vim
/usr/share/vim/vim74/plugin/rrhelper.vim
/usr/share/vim/vim74/plugin/spellfile.vim
/usr/share/vim/vim74/plugin/tarPlugin.vim
/usr/share/vim/vim74/plugin/tohtml.vim
/usr/share/vim/vim74/plugin/vimballPlugin.vim
/usr/share/vim/vim74/plugin/zipPlugin.vim

$ grep "sourcing /" aa.txt  | awk '{print $NF}' | xargs -IQ grep -i  'noru' Q
--//并没有脚本设置执行set noruler。

# cd /usr/share/vim
# grep  -r -i "set.*norule" *
vim74/autoload/vimball.vim:  set noruler noshowcmd

--//尝试修改以上文件包括set ruler showcmd,测试无效。
--//我手工执行set ruler showcmd有效.
--//仔细检查我发现最近增加一行set paste,避免拷贝和粘贴时折行。查看vim文档,发现如下内容:

When the 'paste' option is switched on (also when it was already on):
    - mapping in Insert mode and Command-line mode is disabled
    - abbreviations are disabled
    - 'autoindent' is reset
    - 'expandtab' is reset
    - 'formatoptions' is used like it is empty
    - 'revins' is reset
    - 'ruler' is reset
    - 'showmatch' is reset
    - 'smartindent' is reset
    - 'smarttab' is reset
    - 'softtabstop' is set to 0
    - 'textwidth' is set to 0
    - 'wrapmargin' is set to 0
These options keep their value, but their effect is disabled:
    - 'cindent'
    - 'indentexpr'
    - 'lisp'

--//也就是set paste时,自动重置上面的设置,导致失效。
--//开始我想当然以为把set paste放在/etc/vimrc的最前面,问题可以解决。
--//实际上是错误的,这样虽然设置set paste,但是打开了smartindent,smarttab设置,拷贝粘贴依旧会出现折行情况。
--//没有好的解决方法仅仅记住要使用拷贝粘贴是手工设置set paste,不需要时set paste!关闭,关闭后ruler,showcmd自动打开。

--//另外set paste后在插入模式下使用bccalc_linux.vim插件做运行失效。
--//例子,在插入模式下计算公式后快速输入=: 可以获得计算结果。
12+12= 24

--//如果设置set paste,出现这样的情况。
12+12=:

--//关于bccalc_linux.vim插件可以寻找我以前写的文章。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-3034865/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    4006
  • 访问量
    7970379