文档章节

Linux学习-其他vim使用注意事项

u
 uetucci
发布于 2017/08/29 15:49
字数 805
阅读 8
收藏 0
点赞 0
评论 0

中文编码的问题

如果你的文件是使用 big5 编码制作的,但 在 vim 的终端接口中你使用的是万国码(utf8), 由于编码的不同,你的中文文件内容当然 就是一堆乱码了!怎么办?这时你得要考虑许多东西啦!有这些:

  1. 你的Linux系统默认支持的语系数据:这与/etc/locale.conf有关;
  2. 你的终端接口(bash)的语系:这与LANG,LC_ALL这几个变量有关;
  3. 你的文件原本的编码;
  4. 打开终端机的软件,例如在GNOME下面的窗口接口。

通常是这样来修正语系编码的行为:

[dmtsai@study ~]$ LANG=zh_TW.big5
[dmtsai@study ~]$ export LC_ALL=zh_TW.big5

DOS 与 Linux 的断行字符

曾经提到过 DOS 与 Linux 断行字符的不同。 而我们 也可以利用 cat -A 来观察以 DOS (Windows 系统) 创建的文件的特殊格式, 也可以发现在 DOS 使用的断行字符为 ^M$ ,我们称为 CR 与 LF 两个符号。 而在 Linux 下面,则是仅有 LF ($) 这个断行符号。

[dmtsai@study ~]$ dos2unix [-kn] file [newfile]
[dmtsai@study ~]$ unix2dos [-kn] file [newfile]
选项与参数:
 -k :保留该文件原本的 mtime 时间格式 (不更新文件上次内容经过修订的时间)
 -n :保留原本的旧文件,将转换后的内容输出到新文件,如: dos2unix -n old new

范例一:将 /etc/man_db.conf 重新复制到 /tmp/vitest/ 下面,并将其修改成为 dos 断行
[dmtsai@study ~]# cd /tmp/vitest
[dmtsai@study vitest]$ cp -a /etc/man_db.conf .
[dmtsai@study vitest]$ ll man_db.conf
-rw-r--r--. 1 root root 5171 Jun 10  2014 man_db.conf
[dmtsai@study vitest]$ unix2dos -k man_db.conf
unix2dos: converting file man_db.conf to DOS format ...
# 屏幕会显示上述的讯息,说明断行转为 DOS 格式了!
[dmtsai@study vitest]$ ll man_db.conf
-rw-r--r--. 1 dmtsai dmtsai 5302 Jun 10  2014 man_db.conf
# 断行字符多了 ^M ,所以容量增加了!

范例二:将上述的 man_db.conf 转成 Linux 断行字符,并保留旧文件,新文件放于 man_db.conf.linux
[dmtsai@study vitest]$ dos2unix -k -n man_db.conf man_db.conf.linux
dos2unix: converting file man_db.conf to file man_db.conf.linux in Unix format ...
[dmtsai@study vitest]$ ll man_db.conf*
-rw-r--r--. 1 dmtsai dmtsai 5302 Jun 10  2014 man_db.conf
-rw-r--r--. 1 dmtsai dmtsai 5171 Jun 10  2014 man_db.conf.linux
[dmtsai@study vitest]$ file man_db.conf*
man_db.conf: ASCII text, with CRLF line terminators # 很清楚说明是 CRLF 断行!
man_db.conf.linux: ASCII text

语系编码转换

[dmtsai@study ~]$ iconv --list
[dmtsai@study ~]$ iconv -f 原本编码 -t 新编码 filename [-o newfile]
选项与参数:
 --list :列出 iconv 支持的语系数据
 -f :from ,亦即来源之意,后接原本的编码格式;
 -t :to ,亦即后来的新编码要是什么格式;
 -o file:如果要保留原本的文件,那么使用 -o 新文件名,可以创建新编码文件。

范例一 : 将/tmp/vitest/vi.big5 转成 utf8 编码吧!
 [dmtsai@study ~]$ cd /tmp/vitest
 [dmtsai@study vitest]$ iconv -f big5 -t utf8 vi.big5 -o vi.utf8
 [dmtsai@study vitest]$ file vi*
 vi.big5: ISO-8859 text, with CRLF line terminators
 vi.utf8: UTF-8 Unicode text, with CRLF line terminators
# 是吧!有明显的不同吧

不过如果是要将正体中文的 utf8 转成简体中文的 utf8 编码时,那就得费些功夫了! 举例来 说,如果要将刚刚那个 vi.utf8 转成简体的 utf8 时,可以这样做:

[dmtsai@study vitest]$ iconv -f utf8 -t big5 vi.utf8 | \
> iconv -f big5 -t gb2312 | iconv -f gb2312 -t utf8 -o vi.gb.utf8

© 著作权归作者所有

共有 人打赏支持
u
粉丝 0
博文 65
码字总数 103136
作品 0
深圳
程序员
关于学习linux的一些心得体会

昨天一个学弟问我怎么学好linux,就思考了一下,做下总结,欢迎大家补充!!!(他还让我给他补linux课,表示很蛋疼。。。。) 学习linux之前必须要做好心理准备: 第一,要明白学好linux不是...

索隆
2012/09/14
0
0
如何使用 Vim 编辑器编辑多个文件

有时候,您可能需要修改多个文件,或要将一个文件的内容复制到另一个文件中。在图形用户界面中,您可以在任何图形文本编辑器(如 gedit)中打开文件,并使用 和 复制和粘贴内容。在命令行模式...

作者: Sk
05/11
0
0
如何在任何地方使用 Vim 编辑器输入文本

本文导航 -在 Linux 中安装 Vim-anywhere13% -在任何地方使用 Vim 编辑器输入文本29% 各位 Vim 使用者大家好!今天,我这里有个好消息告诉大家。我会向大家介绍 Vim-anywhere,这是一个简单的...

13%
05/14
0
0
Linux开发环境搭建之Java开发环境JDK安装配置

这几天国产的Linux系统deepin15.5正式版发布了,基本上处于稳定了,受不了win10的各种卡顿和系 统封闭不能修改的诟病,果断下载了deepin系统格盘安装,在deepin上进行开发学习娱乐。本文将在...

MaxBill
2017/12/18
0
0
软件测试人员在工作中如何运用Linux

从事过软件测试的小伙们就会明白会使用Linux是多么重要的一件事,工作时需要用到,面试时会被问到,简历中需要写到。 对于软件测试人员来说,不需要你多么熟练使用Linux所有命令,也不需要你...

软件测试网
04/23
0
0
fedora 8下dns服务器配置 linux服务器配置一

学习linux一年了。一直想整理一下。尽量下星期有空把apache的写出来。Linux版本太多,当初看了很多资料,有些和使用的版本不一样,所以整理一下自己所学习的。和大家共同进步 本文主要针对F...

williamc
2011/03/24
0
0
对于Linux系统管理员很有用的16个在线工具

[ExplainShell.com][2] 命令解释![explainshell][3]   对于Linux用户来说每天都会写各种命令和脚本,那么你可以使用这个网站工具来查看命令式如何工作的,这样可以避免不必要的错误出现;也...

Geekwolf
2014/07/29
0
0
Arch Linux 安装指南

1. 前提 为什么推荐Arch Linux?因为它好用呗! 如果想要学习Linux,Arch Linux是个很好的选择。Arch Linux提供了非常详细并且更新及时的Wiki(帮助文档),使用系统的过程中遇到的问题基本上...

清无色
05/14
0
0
离开windows 好长间了,说说linux 上一些开发体会

使用windows 的时间越来越少了,工作在linux 上,越来越感觉到linux的魅力。 系统 debian 6 越用越顺手的vim. 学习编写 makefile 办公文档 LibreOffice 上网 chromium firefox 邮件: t...

韩工
2012/03/31
0
2
Python小白学习笔记(成长之路)

Python语言可能是第一种即简单又功能强大的编程语言。它不仅适合于初学者,也适合于专业人员使用,更加重要的是,用Python编程是一种愉快的事。本身将帮助你学习这个奇妙的语言,并且向你展示...

乐先生
2013/12/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

聊聊ribbon的超时时间设置

序 本文主要研究一下ribbon的超时时间设置 配置 实例 ribbon: ReadTimeout: 10000 ConnectTimeout: 10000 MaxAutoRetries: 0 MaxAutoRetriesNextServer: 1 eureka: enabled: ......

go4it
4分钟前
0
0
一行代码结果叹为观止,能做到这么极致的也只有python了

Python 这门语言非常的有趣,不仅可以做高大上的人工智能、大数据、机器学习。还可以用来做 Web、爬虫。还有其它很多的应用。今天我就给大家展示下一行 Python 代码都可以做些什么。 一行打印...

猫咪编程
8分钟前
0
0
KingShard使用

对于kingshard的功能,在git中可以看到明确的功能说明,目前使用的企业较少,但公司这边由于有go的架构师,即使踩坑,我们依然可以通过修改源码进行维护,但是mycat之类的中间件,研发这边未必有很...

mickelfeng
10分钟前
0
0
Linux 下 查找某个字符串

如果你想在当前项目下 查找 "test" 这个字符串,可以这样: grep -rn "test" * * : 表示当前目录所有文件,也可以是某个文件名-r 是递归查找-n 是显示行号-R ...

nsns
10分钟前
0
0
数据结构 之 B树与红黑树

https://blog.csdn.net/v_july_v/article/details/6530142 http://www.cnblogs.com/CarpenterLee/p/5503882.html...

晨猫
10分钟前
0
0
Linux查看服务器总内存和总硬盘大小

一、linux CPU大小; 其实应该通过Physical Processor ID来区分单核和双核。而Physical Processor ID可以从cpuinfo或者dmesg中找到. flags 如果有 ht 说明支持超线程技术 判断物理CPU的个数可...

浮躁的码农
10分钟前
0
0
Postfix命令行说明

Postfix tips and Troubleshooting Commands Here's a list of stuff I user everyday and other email admins will also be using, Let me know if I missed anything List/Print current m......

mingle
16分钟前
0
0
是时候使用Helm了:Helm, Kubernetes的包管理工具

目前我们的一个产品共有4套环境:dev环境、test环境、staging环境、production环境。 其中dev, test, staging环境在一个Kubernetes集群上以不同namespace部署,production环境部署在另一个Kub...

xiaomin0322
24分钟前
0
0
常见的redis的序列化方式

概括 一般redis的序列化方式主要有:字符串序列化、json序列化、xml序列化、jdk序列化,具体可查阅org.springframework.data.redis.serializer.RedisSerializer 的实现类,其中对于json序列化...

菜蚜
38分钟前
1
0
Linux bash入门

一、Linux Bash介绍 Bash是UNIX系统下的一个命令解析器,全称为Bourne-Again Shell是一个为GNU开源项目编写的Unix shell。bash功能强大,尤其是在处理自动循环或者耗时大的任务方面可以节省大...

老韭菜
42分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部