Terminal-Emulator

終端仿真器中的中心電流線

  • May 18, 2016

我真正喜歡的 emacs 緩衝區(甚至ansi-termshell和)的一個特性是能夠在終端中“居中”目前行,以便螢幕的上半部分仍然包含一些先前的輸出。eshell``C-l

似乎一個標準(不確定標準的名稱是什麼)終端在C-l按下時會將目前行移動到視窗的頂部。有沒有一種通用的方法可以將目前行移動到螢幕的中心?如果沒有,有沒有辦法專門針對 iterm2、終端或已移植到 OS X 的某些終端仿真器執行此操作?

大多數終端仿真器都可以“做到”這一點,但這需要一些工作:

  • 假設您要移動的行位於螢幕底部。
  • 如果您想將該行向上移動,您可以通過向底行發送一個轉義序列來滾動(或“索引”)該行,並(計數!)將該行向上移動您要滾動的行數。
  • 滾動移動螢幕上的所有行。您可以通過設置滾動區域來限制移動的行數。通過這樣做,您可以防止螢幕上半部分的線條消失。但是你的線的原始位置和它的目標之間的線會消失。

這只會使隊伍向上移動。類似地,您可以使用“反向索引”向下移動一行。順便說一下,這些操作不在標準ECMA-48 中,而是在 xterm 之類的任何東西中(基於 DEC vt100)。 ansi-term支持滾動/索引。

最後,這只是上升或下降。要向左/向右移動一行,您可以在游標位於行首時發送用於插入或刪除字元的轉義序列。

這些轉義序列記錄在terminfo(5)手冊頁中。我已經提到了這些:

csr(設置滾動區域)

ind(索引)

rin(反向索引)

cup(游標位置)

ich(插入字元)

dch(刪除字元)

進一步閱讀:

引用自:https://unix.stackexchange.com/questions/283815