vi 编辑器

vi配置

set nu
set hls
set incsearch
""" 自动缩进
set autoindent
set cindent
" Tab键的宽度
set tabstop=8
" 统一缩进为4
set softtabstop=8
set shiftwidth=8

set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936

vi编码

1.在Vim 中可以直接查看文件编码

:set fileencoding   即可显示文件编码格式

如果只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么可以在~/.vimrc 文件中添加以下内容:set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936 (可以自动识别UTF-8或者GBK编码的文件)

其实就是依照fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开。

1.在Vim中直接进行转换文件编码

:set fileencoding=utf-8  将一个文件转换成utf-8格式


摘:http://www.361way.com/vi-char/362.html

:set fileformat设置文件格式
:set endofline设置文件结束符
:set noendofline取消文件结束符
:set list进入List Mode
:set nolist退出List Mode
:%s/n//g删除换行符
:set textwidth设置行宽
:set textwidth设置行边距
:join合并多行
J合并两行

此外,关于ASCII字符,Linux下面有个简要的介绍:man ascii 

^M 是ascii中的'r'回车符,是16进制的0x0D,8进制的015,十进制的13;

对于换行这个动作,unix下一般只有一个0x0A表示换行
windows下一般都是0x0D和0x0A两个字符。
^L 是ascii 0x0C 'f', 换页控制符 。

vi参看16进制

:%!xxd              ——将当前文本转换为16进制格式。

  %表示文件的所有行,!xxd表示执行外部命令xxd,结合在一起,就是把当前vim上显示的所有行传递给xxd,xxd把处理后的结果重新显示在vim上。

:%!xxd -r           ——将当前文件转换回文本格式。

  只有十六进制的修改部分才会被采用,右边侧栏的ASCII码值忽略不管。

od

  -A 指定左边侧栏显示的地址基数,默认为八进制
  -t 指定输出单元的进制格式和字节数
  -x = -t x2 输出单元为双字节(注意:每单元内排列顺序从左到右为 [高字节|低字节])

hexdump

  -c 每单元以字节为单位,显示出对应的ASCII码
  -C 每单元以字节为单位,同时显示十六机制和ASCII码

xxd 能够显示文件对应的十六机制格式,同时还能将修还后的十六进制格式反写回文件,一般与vim结合使用。(利用vim的:! 参数执行外部命令)

三、如何消除vi中的^M

我刚开始去用sed命令: 

sed 's/^M//g' file_old > file_new

执行后查看不成功,输出的文件,用vi打开,还是带^M。
后来到网上搜到了可以用的办法,用tr命令:

tr -d "15" < myfile.txt > myfile_new.txt

可以把符号^M(即"15")去掉,并另存为新文件myfile_new.txt 。

四、vim显示空格、tab字符及多行注释 

1、显示 TAB 键 

文件中有 TAB 键的时候,你是看不见的。要把它显示出来:

 :set list TAB
2、vim 的搜索及替换 

如果没有指定范围,则只在当前行进行搜索替换。
在所有行进行搜索替换。范围符号%表示在所有行进行搜索替换。

:%s/from/to/

就是在全文查找from并替换为to。
在指定的行上进行搜索替换。

:1,50s/from/to/

表示在第1行和第50行之间(包括1和50行)进行搜索和替换。

:45s/from/to/

表示仅仅在第45行进行搜索和替换。而"1,$"行号范围和“%“是等价的。

3、Vim多行缩进技巧 

关键字: vim indent
按v进入visual状态,选择多行,用>或<缩进或缩出
通常根据语言特征使用自动缩进排版:

在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行。你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format。

使用gg=G可对整篇代码进行排版。 

vim 多行注释

:20,30 s/^/#/g 第20到30行用 # 注释掉。:20,30 s/^#//g 取消注释:4,10 s/^[^I ]+// 去掉行首的空白字符 用 . 表示当前行。:.,30 s/^/#/g 可以看到 vim 命令针对当前行,在前面加个范围就可以针对多行。:co 12 把当前行 copy 到行 12 的地方。


转载于:https://my.oschina.net/u/2357574/blog/546534

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值