无法从 Putty ssh 会话中使用 vim

无法从 Putty ssh 会话中使用 vim

我已成功在远程计算机上设置 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 文件中?

相关内容