Sam*_*ami 43 macos vim ssh terminal utf-8
好吧,经过15年的linux,我终于得到了一台MacBook Air.在我得到它之前,我最关心的是UTF-8支持,因为无论我是从Windows或mac-clients发送给我的文件总是问题编码,而在ubuntu我可以确定所有输出无论什么程序将产生完美的utf-8编码数据.
现在在我的第二天(今天)与OS X我沮丧地撕裂了我的头发.为什么?
当我打开Nano并输入一些像ÅÄÖ这样的瑞典字符时,它会在行尾添加空白字符(我猜这是每个字符中的另一个字节)
当我打开python并尝试使用瑞典字符时,它根本不输出任何内容
当我通过SSH连接到Ubuntu服务器时,我无法在bash中键入åäö,但它很难在VIM中运行(仍然通过SSH).并且在nano退格中不起作用,但是如果在终端首选项中选中"删除发送ctrl + H"框,则退格开始在nano中工作但在VIM中停止工作.
我尝试在终端首选项中取消选中所有其他编码然后UTF-8,但这似乎也不起作用.
我确信每个非美国人都必须有同样的问题,所以我能解决它们吗?我只想要完整的UTF-8支持...:'(
小智 38
对我帮助了这个:我在终端的本地shell上检查了语言环境
$ locale
LANG="cs_CZ.UTF-8"
LC_COLLATE="cs_CZ.UTF-8"
Run Code Online (Sandbox Code Playgroud)
然后通过ssh和编辑后的文件/ etc/profile连接到我正在使用的任何远程主机 - 最后我添加了一行:
export LANG=cs_CZ.UTF-8
Run Code Online (Sandbox Code Playgroud)
在下一次连接后,它在bash,ls和nano中工作正常.
ism*_*ail 17
去Terminal -> Preferences -> Advanced (Tab)下井International,并选择Unicode (UTF-8)作为Character Encoding.
打勾Set locale environment variables on startup.
dan*_*elo 16
不幸的是,首选项对话框并不总是非常有用,但通过调整你应该能够使一切正常工作.
为了能够在终端中键入瑞典字符,请将以下行添加到〜/ .inputrc(很可能您必须创建此文件):
set input-meta on
set output-meta on
set convert-meta off
Run Code Online (Sandbox Code Playgroud)
这应该做的工作都与UTF8和其它值编码bash,nano和许多其他程序.有些程序,tmux也取决于locale.然后,例如添加export LC_ALL=en_US.UTF-8到您的~/.profile文件应该有帮助,但请记住,一些(主要是模糊的)程序需要标准的区域设置,因此如果您在运行或编译程序时遇到问题,请尝试返回LC_ALL=C.
一些可能有用的参考资料:
Urb*_*ond 13
以下是OS X Mavericks(10.9)下您需要执行的操作的摘要.这些都归纳为
http://hints.macworld.com/article.php?story=20060825071728278
转到终端 - >首选项 - >设置 - >高级.
在International下,确保将字符编码设置为Unicode(UTF-8).
此外,这是关键:在Emulation下,确保未选中使用Control-V的Escape非ASCII输入(即未设置).
这两个设置修复了终端的问题.
确保您的区域设置设置为结束的内容.UTF-8.输入locale并查看该LC_CTYPE行.如果它没有说en_US.UTF-8(如果您使用非美国英语语言环境,那么点之前的内容可能会改变),那么在您的Bash .profile或.bashrc您的主目录中,添加如下所示的行:
export LC_CTYPE=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)
这将解决命令行程序的一般问题.
.inputrc将以下行添加到主目录中(如有必要,请创建它):
set meta-flag on
set input-meta on
set output-meta on
set convert-meta off
Run Code Online (Sandbox Code Playgroud)
这使Bash成为8位干净,所以它会传入和传出UTF-8字符,而不会弄乱它们.
请记住,您必须重新启动Bash(例如,关闭并重新打开终端窗口),以使其注意您在上面2和3中所做的所有设置.
简短的通用答案(适合其他国家语言,甚至立陶宛语或俄语)
nano .profileexport LC_ALL=en_US.UTF-8这解决了我即使是小国罕见的民族性格.您可能需要关闭并打开终端以使更改生效.
此外,如果您喜欢Linux行为(使用很多Alt快捷键,如Alt +.或Alt +,在mc中),那么您应该禁用Mac风格的Option键功能:终端 - >首选项 - >配置文件 - >键盘和复选框:
Use Option as Meta key
小智 5
要nano根据需要进行工作,请尝试:
export LANG="UTF-8"
Run Code Online (Sandbox Code Playgroud)
或获取nanovia 的更新版本MacPorts:
# cf. http://www.macports.org/install.php
port info nano
port variants nano
sudo port install nano +utf8 +color +no_wrap
Run Code Online (Sandbox Code Playgroud)
对于SSH和UTF-8的问题注释掉SendEnv LANG LC_*在 /etc/ssh_config。
请参阅:OS X Lion中的终端:无法在远程计算机上写åäö
我的终端只是表现得很傻,而不是打印出来的åäö.我发现(并设置)此设置:
在Terminal -> Preferences... -> Profiles -> Advanced.
似乎解决了我的问题.
| 归档时间: |
|
| 查看次数: |
95627 次 |
| 最近记录: |