Vi快捷操作 vim配置【shell文件格式从windows转换为linux】

时间:2024-01-10 09:48:14

vim配置 http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html

gg 首行

dd 删除当前行

:.,$d  删除全部内容

:set number 显示行号

SHELL syntax error:unexpected end of file 提示错误

DOS下文件和Linux下文件格式差异问题导致的。

DOS下的文本文件是以\r\n作为断行标志的,表示成十六进制就是0D 0A。而Unix下的文本文件是以\n作为断行标志的,表示成十六进制就是0A。

【在windows里,换行用的两个符号,回车\r,换行符号\n,在linux下只需一个符号\n就可以了.】

DOS格式的文本文件在Linux下,用较低版本的vi打开时行尾会显示^M,当然也有可能看不到,但是在vi的时候,会在下面显示此文件的格式,"M.txt" [dos] 8L, 72C表示是一个dos文件格式。

解决方案:

使用下面的命令将文件格式设置为unix格式即可解决上述错误。

vi exec.sh
:set ff=unix(或者:set fileformat=unix)
:wq

如果以上步骤要求在一个shell批处理文件中完成,那么该怎么办?

可以这样:

  1. vi +':w ++ff=unix' +':q' ${file}

这样一条命令就可以搞定了,但是要严格注意上面空格的位置,不能多不能少

vim文件间复制粘贴完美方案

  1. 在~/.vimrc中增加如下一行::

    set mouse=v
  2. 复制内容到选择缓冲区。

    • 带行号时,使用鼠标选择内容区域。
    • 不要行号,使用 “*yny 复制n行或可视模式下选择。
  3. 将选择缓冲区中内容粘贴到vim文件:普通模式下按 “*p 。