zl程序教程

您现在的位置是:首页 >  工具

当前栏目

fedora23解决gedit和vim中文乱码的问题

Vim中文 解决 乱码 问题
2023-09-14 09:08:51 时间

fedora23解决gedit和vim中文乱码的问题

a, an, the这些不定/定 冠词并不是在所有的名词 前面都要加.

只有在语义上需要时,才加. 名词的单数/复数 前面不加 冠词的 例子多的是:

专门用于linux的键盘cherry(樱桃), 在最左边多了一排键, 包括www, mail,explorer, calculator键等(当然有专门的驱动给键盘)

==============================================
在All settings -> keyboard中 设置:
组合键除了 ctrl, shift, alt 外, 还可以有super(super: 表示窗口logo键),这样就更大选择余地了

super+u ->binds to "all settings"
ctrl+F, super+E == ~ home

shortcut: 近路, 捷径. there is no shortcut to learning.

-----------------------==
只需要在 /etc/vimrc的配置文件中,添加 中文的编码 gb2312
:
在 set fileencodings= utf-8, latin1中 添加 gb2312,gbk(支持繁体) 即:
set fileencodings=utf-8, gb2312,gbk,latin1

-------------------------------==
vi & vim的表现上, vim有语法颜色, 而vi没有语法颜色区分.

系统自带的程序放在/bin下的, 用户自己安装的程序, 通常放在/usr/bin下面, 相当于program files/..

----------------------------------==
run gedit in standalone mode是指单独的重新开始一个进程和窗口: begin with a new process and a new window.
而不是在原有的geidt窗口和标签页.
主要是如果你担心一个标签页关闭 - crash引起整个窗口的崩溃和关闭时,就可以用这个选项: gedit -s( 或者, --standalone)

=================================================================

windows默认的中文编码格式是 gb2312, 而linux默认的是: utf-8.应此, 将windows下, gb2312编码的文件在linux下将会出现乱码.

vim和gedit下的字符编码方式:

  • encoding: Vim 内部使用的字符编码方式,包括 Vim 的 buffer (缓冲区)、菜单文本、消息文本等。用户手册上建议只在 .vimrc 中改变它的值,事实上似乎也只有在 .vimrc 中改变它的值才有意义。

  • fileencoding: Vim 中当前编辑的文件的字符编码方式,Vim 保存文件时也会将文件保存为这种字符编码方式 (不管是否新文件都如此)。

  • fileencodings: Vim 启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式,并且将 fileencoding 设置为最终探测到的字符编码方式。因此最好将 Unicode 编码方式放到这个列表的最前面,将拉丁语系编码方式 latin1 放到最后面。

  • termencoding: Vim 所工作的终端 (或者 Windows 的 Console 窗口) 的字符编码方式。这个选项在 Windows 下对我们常用的 GUI 模式的 gVim 无效,而对 Console 模式的 Vim 而言就是 Windows 控制台的代码页,并且通常我们不需要改变它。通过ssh telnet等控制台终端的字符编码方式.

    由于 Unicode 能够包含几乎所有的语言的字符,Unicode的 UTF-8 编码方式又是非常具有性价比的编码方式,因此encoding 的值设置为utf-8。同时将encoding设置为utf-8时,Vim自动探测文件的编码方式会更准确。在中文 Windows里编辑的文件,为了兼顾与其他软件的兼容性,文件编码还是设置为GB2312/GBK比较合适,因此fileencoding建议设置为 chinese (chinese 是个别名,在Unix里表示gb2312,在Windows里表示cp936,也就是GBK的代码页)。
    
set fileencodings=utf-8,gb2312,gbk,gb18030
set termencoding=utf-8
set encoding=prc

====================================================
而实际上, 设置gedit的文件 编码方式, 避免出现中文乱码, 可以有三种方法:

  1. gedit本身是一个 "程序", 是一个"gui"程序, 但是它也可以用命令行方式启动, 带 cmd line参数的:
    如: gedit --list-encodings,
    gedit --encoding=GB2312
    就是, 在gedit 启动或打开某个文件的时候, 直接指定它采用什么方式的 文件编码: gedit --encoding=GB2312 ~/Downloads/foo.txt

  2. 在gedit的最下面(状态栏), 在open/save file chooser对话框中, 的最下面, 有character encoding: (add or remove encodings...),
    添加/删除 字符编码列表, 但这个只对当前文件有效, 对其他文件无效

  3. 使用dconf-editor 来编辑: org - gnome - gedit - preferences .... 中的 candidate encodings 设置这个字符串数组: 为['UTF-8','GB2312','GBK', 'LATIN-1'].

==============================================
sun公司, "太阳", 操作系统:
solar: 太阳的,
solar +is solaris.

请参考这篇文章: http://www.cnblogs.com/huangpeng/archive/2009/02/20/1394882.html

[[

某些软件,比如Open Office,通过GNOME或者KDE菜单启动的话,即使切换到中文输入法也输不进中文,这是因为整个桌面系统的环境是英文的,软件“继承”了英文环境的相关变量,这些软件就“认死理”,就是不让输入中文,这时候可以打开一个gnome终端,把LANG变量临时设置成zh_CN.UTF-8 :

[root@gucuiwen ~]# LANG="zh_CN.UTF-8"

然后在这个gnome终端中,用命令打开open office:

[root@gucuiwen ~]# oowriter &

这样Open Office就“继承”了gnome终端的LANG变量,起动后,工具栏和菜单等都是中文的,而且能输入中文。

推而广之,任何软件都可以用这种方法,根据需要,打开中文界面的软件和英文界面的软件。要以英文界面运行软件时,只要从GNOME或者KDE菜单打开,要用中文界面运行软件时,在终端中修该 LANG变量,从修改过LANG变量的终端中通过命令运行即可。

当然,如果你还安装了其他语言的字体,你还可以以其他语言的界面来运行程序。如日语:

[root@gucuiwen ~]# LANG="ja_JP.UTF-8"
[root@gucuiwen ~]# gedit &

我用上面的两条命令打开的gedit 编辑器就是全日语界面的,但是能输入中文和英文,并显示日文。从而达到,一个系统,多种语言和文字共存的目的。

当然,前提是要安装了日语字体和日语locale,否则所有有文字的地方会全部显示成一连串问号。总之,要先懂得原理,之后想怎么玩就怎么玩,随心所欲,完全不受限制,充分享受用Linux的乐趣。

]]

关于vim中的字符集,参考:http://blog.csdn.net/sunboy_2050/article/details/6015945

ucs: unicode character set: unicode 字符集.
包括ucs-2, ucs-4
ucs是所有字符集的超集!
[ucs和bom参考]
http://blog.csdn.net/weiyi89/article/details/9981615
ucs和其他字符集之间是双向兼容:...
bom: 是指 : byte order mark, 字节序标记.
ucs传递数据的时候, 分不同的cpu架构, 采用不同的存储字节顺序.(powerpc架构的big endian, 和intel架构的little endian)因此, 在ucs的
字节流的开头有一个两个/3个 字符(字节): 叫做: zero-width no-break space: 零宽度不间断空格. 这个符号如果是FEFF, 则是大端字节序, 如果
是FFFE则是小端字节序.

关于字节序: http://www.cnblogs.com/elect-fans/archive/2012/05/15/2501544.html

通常情况下, 好像这个ucs和bom都用的比较少.
utf-8本身不用bom, 指是用这个bom字节表示当前文件的编码是utf-8而已.

===================================
在vimrc中的
if v:lang=~"utf8\(" || v:lang = ~ "UTF8\)"
set fileencodings=.....
endif

v:lang, 是不是可以理解为vim的内部语言, 不是以 utf8 或UTF8结尾的 , 则设置 fencs....