免责声明:我对下面的所有文本表示道歉(对于一个简单的问题),但我真诚地认为每一点信息都与这个问题有关.我很乐意另外学习.我只能希望,如果成功,问题和答案可能会帮助其他人疯狂.开始.
我已经阅读了所有通常备受推崇的关于utf8的网站,特别是这个非常适合我的目的,但我也读过经典,就像SO中其他类似问题中提到的那样.但是,我仍然缺乏如何在虚拟实验室中集成它的知识.我用Emacs
;; Internationalization
(prefer-coding-system 'utf-8)
(setq locale-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-selection-coding-system 'utf-8)
Run Code Online (Sandbox Code Playgroud)
在我的.emacs中,xterm以
LC_CTYPE=en_US.UTF-8 xterm -geometry 91x58\
-fn '-Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1'
Run Code Online (Sandbox Code Playgroud)
我的语言环境如下:
LANG=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)
我的问题如下(一些答案可能是应用程序的预期行为,但我仍然需要理解它,所以请耐心等待):
假设以下C程序:
#include <stdio.h>
int main(void) {
int c;
while((c=getc(stdin))!=EOF) {
if(c!='\n') {
printf("Character: %c, Integer: %d\n", c, c);
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果我在我的xterm中运行它,我得到:
€
Character: ? Integer: 226
Character: ?, Integer: 130
Character: ?, Integer: 172
Run Code Online (Sandbox Code Playgroud)
(以防万一我得到的字符是黑色圆圈内的白色问号).int是编码€所需的3个字节的十进制表示,但我不确定为什么xterm不能正确显示它们.
相反,Mousepad,例如,打印 …
我正在使用Vim 6.3.81在x-term中通过腻子.我想使用我的.vimrc将鼠标事件(如滚轮按钮单击,双击)映射到特定事件.我查看了vim wiki并在此基础上,在我的.vimrc中定义了以下地图:
:nnoremap <2-LeftMouse> :set invnumber<CR>
Run Code Online (Sandbox Code Playgroud)
但是,它不起作用 - 双击不会按预期切换行号.我是否必须更改我的X设置才能让vim接受鼠标事件?
谢谢...
我正在使用Vim 7.2,使用+ xterm_clipboard编译,在xterm中通过putty.我已经放入set clipboard=unnamed了.vimrc,从我在其他线程中读到的内容,这应该将所有的yanks/deletes放到系统剪贴板中.然而,当我试图粘贴我已经被抓到像记事本这样的MS应用程序时,它无法正常工作.
当我使用鼠标在vim中选择文本时,它会自动复制到系统(MS剪贴板).我想在使用像3yy这样的键盘命令时拥有相同的功能.
谁能告诉我我做错了什么?
在我的mbp上,我在X11下打开xterm,我想从剪贴板粘贴.但是,命令+ v不起作用,甚至没有来自编辑菜单的选项.这不可能吗?如果是,我该如何启用它?
我在我的Windows 7机器上安装了cygwin,我遇到了一个问题,当我键入命令时,它偶尔会被包回到同一行,删除bash提示符.这是一个例子:

有问题的命令是命令"201"(从底部开始的4行).我把其他人包括在内.
我输入的命令的文本是
git commit -m "Forced LF line endings."
(注意:我发布的主要是git命令,但任何命令都会出现问题.我还没有注意到模式.)
它跳到了行的开头并开始覆盖我的提示.
当我按下向上箭头(查看历史记录)时,结果甚至更奇怪:

(注意光标是命令末尾的许多字符.) 当我尝试从该位置退格光标时,我只能回到这一步:

然后当我从那个退格线进入历史时,我得到了这个:

该命令从显示的文本末尾开始.(这对于整个历史是一致的)但是当我在历史记录中出现错误时,git commit ...它会像以前一样显示覆盖的文本但是当我经过它时,它会删除提示行并显示上一个条目历史与以前一样(图像2).
当我创建我的PS1变量时,我有这样的奇数输出,但我已经关闭了我的括号和东西,并且不认为这导致了问题.但是,如果你想看到我的.bash_profile(设置PS1)随意在GitHub上看到它.它真的很短.
我已经尝试过搜索这个问题,并且只能在xterm中找到一些有关换行的cygwin电子邮件档案,但没有解决方案.
PS:当我推动最新版本时.bash_profile,为了链接它,当我键入git add .bash_profile并按Enter键时,我再次遇到问题,它运行命令但是将光标返回到相同命令的开头而不是打印新提示.然后,当我写另一个提交行时,它的作用与第一个图像相同,但是它会使行的其余部分变黑(它包裹了行,但覆盖了整行,而不仅仅是前几个字符.)
我正在尝试将Vim命令映射到ctrl+pgup和ctrl+pgdn组合键.这些键vim的语法不工作(即<PageUp>和<PageDown>,或<C-PageUp>和<C-PageDown>).
由于默认的vim语法是不行的,我猜,终端不发送的字符代码ctrl+pgup和ctrl+pgdn即Vim期待.如果这是真的,我不知道如何找出文字键码是什么.我在Arch Linux上使用xfce4-terminal.
这是我尝试过的:
通常的方法:
map <C-PageUp> :bp<cr>
Run Code Online (Sandbox Code Playgroud)使用此答案的方法从命令行设置它:为什么<C-PageUp>和<C-PageDown>在vim中不起作用?
:map <CTRL-V><CTRL-PAGEUP> :bp<cr>
Run Code Online (Sandbox Code Playgroud)
当我在命令行中键入上面的命令时,没有显示:
map :bp<cr>
Run Code Online (Sandbox Code Playgroud)
而Vim说No mapping found.
来自Vim wiki的这个方法:http ://vim.wikia.com/wiki/Mapping_keys_in_Vim_- Tutorial(Part_2)#Key_notation
set <PageUp>=<type Ctrl-V><type PageUp> "^[[5~
map <C-PageUp> :bp<cr>
Run Code Online (Sandbox Code Playgroud)对答案的修改:
set <C-PageUp>=<type Ctrl-V><type Ctrl+PageUp> "^M
map <C-PageUp> :bp<cr>
Run Code Online (Sandbox Code Playgroud)在意识到这<type *>是一个用户命令后,我做了这些命令,并且vim粘贴了输出.我<type *>用这个输出替换了:
set <PageUp>=^[[5~
map <C-PageUp> :bp<cr>
" Also:
set <PageUp>=[[5~
map <C-PageUp> :bp<cr>
" …Run Code Online (Sandbox Code Playgroud)可以编写一个简单的python脚本来嵌入xterm到tk框架中:
from Tkinter import *
import subprocess
root = Tk()
termf = Frame(root, height=800, width=1000)
termf.pack(fill=BOTH, expand=YES)
wid = termf.winfo_id()
Run Code Online (Sandbox Code Playgroud)
窗口建立后
proc = subprocess.Popen('xterm -into %d -sb ' % wid,shell=True)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
当我远程登录我们的工作太阳站时,我的退格键不起作用.我使用临时解决方法:
$ stty erase ^ H.
这工作但每次我telnet我必须重新键入此.如何在我的.cshrc文件中将其设置为正常工作?
以下映射不起作用:
\n\nnoremap <A-\xc3\xb6> :do something\nRun Code Online (Sandbox Code Playgroud)\n\n我使用 xterm(在 Ubuntu 上)和映射,就像<A-j>工作一样。单独进行映射\xc3\xb6是可能的,但同样<C-\xc3\xb6>是行不通的。
我尝试过的:
\n\nset encoding=utf-8在 .vimrc 的开头noremap <M-\xc3\xb6>Ctrl在插入模式下 + 后接 + 将打印 \xc3 \ vxb6 Alt。\xc3\xb6
\n\n有没有办法来解决这个问题?
\n我希望有人可以帮我弄清楚我可能需要覆盖的设置.我正在使用Unix终端服务器,运行Linux Xterm linux shell.每次我grep "blah" 2> /dev/null在shell提示符下使用命令时,该命令都会运行,grep "blah" 2 > /dev/null并且不用说重定向失败了.xterm版本是X.Org 6.8.99.903(238)
我无法更新或安装任何东西,这是一个锁定的生产服务器.
感谢您对该主题的任何帮助和启发,它使我的grep在高级目录级别使用递归无用.