我已成功在远程计算机上设置 vim,使其能够使用 telnet,颜色为 256 色。但是,我无法使其在 ssh 上工作,即使使用最简单的配置(无颜色,仅在 ssh 上使用简单的 vim)。我不知道是否是我使用颜色配置破坏了它,或者它从未工作过。
也就是说,vim 启动了,但是它冻结了,它不接受任何命令:i、[Esc]、:q、[Ctrl]-C......什么都没有。
这里还有一些附加信息:
- vi 可以工作,但它不是 vim 启动的别名,它指向 /bin/vi 可执行文件
- TERM 设置为 vt100
- 我以如下方式启动 vim: vim -u NONE -U NONE
- 我已经尝试过 -v ( vi 兼容)和常规 vim
我的简历:
set -o emacs
export TERM=vt100
#export TERM=xterm-256color
export HOME=/home/node.mgr
export JAVA_HOME=...
export PATH=$PATH:$JAVA_HOME/bin:.:$HOME/scripts
#
# bindings per i tasti direzione
# vedi http://unix.derkeiler.com/Newsgroups/comp.unix.questions/2005-01/0086.html
case $- in
*i*) #interactive ksh
# This stuff lets the arrow keys work in an xterm...
alias __A=`echo "\020"` # up arrow == ^p == back a command
alias __B=`echo "\016"` # dn arrow == ^n == down a command
alias __C=`echo "\006"` # rt arrow == ^f == forward a character
alias __D=`echo "\002"` # lf arrow == ^b == back a character
esac
cd $HOME
编辑: 回复 @RedGrittyBrick
stty 输出:
> stty -a
speed 38400 baud;
erase = ^H; kill = ^X; intr = ^C; quit = ^\; susp = ^Z; eof = ^Y
eol = ^M; stop = ^S; start = ^Q
-parenb -parodd cs7 -cstopb hupcl cread -clocal
ignbrk -brkint ignpar -parmrk -inpck istrip -inlcr -igncr icrnl
ixon -ixoff
isig icanon echo echoe echok echonl -noflsh
-tostop -iexten
opost -ocrnl
除了,
- 通过 PuTTY “重置终端”不起作用
- 我找不到“你在那里吗”命令;我正在使用 PuTTY v0.61。
- vim --version | grep terminfo 给出:... +terminfo...
- 通过 PuTTY 菜单发送 SIG* 无效
- 将 TERM 更改为 xterm(在环境变量和 Putty 会话配置中)无效
编辑:回复 @BlakBat
echo $DISPLAY 显示空字符串
> uname -a
NONSTOP_KERNEL svimi2 H06 20 NSE-A
> cat .vimrc
set nocompatible
set incsearch
set smartcase
set scrolloff=2
set wildmode=longest,list
set number
set nuw=6
set tabstop=4
set shiftwidth=4
set expandtab
set softtabstop=4
set autoindent
colorscheme elflord
syntax on
filetype plugin on
:let mapleader = ","
"fix backspace
:set t_kb
:fixdel
答案1
- Putty 的本机终端类型(默认配置)是“xterm”而不是“vt100”。
- 您不需要在 .profile 中对 TERM 进行硬编码。
- 在服务器上使用
stty intr ^C
来指定 Ctrl+C 的功能。 - Putty 菜单中有一个“重置终端”选项
- Putty 的菜单有一个“特殊命令”“你在吗”(答案是“[是]”)。
- 我不知道这些别名如何工作,Putty 不会发送 __A。
现代 vi 使用 terminfo 来查找要发送到 Putty 的初始化字符串。您安装的 vim 可能使用 termcap(请参阅vim --version | grep terminfo
:结果应包括-terminfo
或+terminfo
)
答案2
你的机器的‘uname -a’输出是什么?
否则,不要在配置文件中设置 TERM。您可以在 PuTTY 的配置窗口中进行设置。根据远程系统,您可能需要尝试设置“TERM=putty”。
当您启动 vim 时,它可能会尝试连接到 X 会话,“echo $DISPLAY”的输出是什么?
要在 vim 中打开颜色,您必须发出“syntax on”命令,该命令可以放在您的 .vimrc 文件中?