xterm.js+websocket+vue实现xshell使用vi无法正常编辑文件?

问题描述

xterm.js+websocket+vue实现xshell使用vi无法正常编辑文件

问题出现的环境背景及自己尝试过哪些方法

尝试不用固定的rows,和cols

相关代码

<script setup>
  //远程登录=====
  import 'xterm/css/xterm.css';
  import { Terminal } from 'xterm';
  import { FitAddon } from 'xterm-addon-fit';
  import { AttachAddon } from 'xterm-addon-attach';
  import useFormData from '@/utils/use-form-data';
  import { opsTstWebshell } from '@/api/operation';
  import { message } from 'ant-design-vue/es';
  //远程登录=====
  const inputContent = ref(''); //shell中输入的内容
  const showShell = ref(false);
  const terminalRef = ref(null); //找到shell的容器
  const term = ref(null);
  const socket = ref(null);
  const rows = ref(32);
  const initTerm = () => {
    const terminal = new Terminal({
      rendererType: 'canvas', //渲染类型
      rows: rows.value, //行数
      // cols: cols.value, // 设置之后会输入多行之后覆盖现象
      convertEol: false, //启用时,光标将设置为下一行的开头
      fontSize: 14, //字体大小
      disableStdin: false, //是否应禁用输入。
      cursorStyle: 'block', //光标样式
      // cursorBlink: true, //光标闪烁
      scrollback: 30, //终端中的回滚量
      tabStopWidth: 4,
      theme: {
        foreground: 'white', //字体
        background: '#060101', //背景色
        cursor: 'help' //设置光标
      }
    });
    const attachAddon = new AttachAddon(socket.value);
    const fitAddon = new FitAddon();
    terminal.loadAddon(attachAddon);
    terminal.loadAddon(fitAddon);
    terminal.open(terminalRef.value);
    terminal.focus();
    fitAddon.fit();
    //限制和后端交互,只有输入回车键才显示结果
    terminal.prompt = () => {
      terminal.write('\r\n$ ');
    };
    terminal.prompt();

  };

你期待的结果是什么?实际看到的错误信息又是什么?

能够正常编辑,现在输入 vi a.txt后输入,前一次输入的内容会向上隐藏,并且一排只能输入10来个字符就自动换行

阅读 907
avatarAI BotBETA

这个问题可能源于许多不同的因素,但根据你提供的信息,我可以提出几个可能的解决方案。

  1. 尝试调整 Terminal 的 rows 和 cols 属性:你的问题是输入 vi a.txt 后,前一次输入的内容会向上隐藏,并且一排只能输入10来个字符就自动换行。这个问题可能是因为你的 rows 和 cols 设置不正确。你可以尝试调整这些值,看看是否可以解决问题。
  2. 检查 websocket 连接:如果 websocket 连接有问题,可能会导致终端的输入和显示出现问题。你需要确保 websocket 连接已经建立并且正常工作。
  3. 检查 vi 程序的兼容性问题:如果你的服务器上运行的 vi 程序版本和你的客户端不兼容,可能会导致编辑文件时出现问题。你可能需要升级或者更换 vi 程序,或者调整兼容性设置。
  4. 检查 xterm.js 版本和插件:你使用的 xterm.js 和插件的版本可能会影响编辑文件的功能。你可能需要升级或者更换这些库,或者调整兼容性设置。

希望这些建议能够帮助你解决问题。如果你需要更具体的帮助,例如如何调整 rows 和 cols 值,或者如何检查 websocket 连接,可以提供更多的代码和信息。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题