web-dev-qa-db-fra.com

Y a-t-il un moyen de quitter "moins" sans nettoyer l'écran?

Rapport souvent, je me trouve vouloir quitter less mais laissez ce que je visitant à l'écran, pour renvoyer à. Y a-t-il un moyen de faire ça? Solutions de contournement?

(Ma solution de contournement actuelle est de cesser, puis d'utiliser more. Donc tout contournement qui est mieux que cela est accueilli. L'idéal serait quelque chose que je peux utiliser une fois que je suis déjà à l'intérieur less, peut-être avec un cadre de shell ou des scripts.)

Mon bureau est OSX, mais j'utilise des serveurs Rhel et Ubuntu.

74
Steve Bennett

Ceci est en fait une fonction de l'émulateur de terminal que vous utilisez (xterm, gnome-terminal, konsole, écran). Un autre écran, ou Altscreen, est lancé lorsque des programmes tels que less ou vim sont invoqués. Cet altscreen n'a pas de tampon d'histoire et sort immédiatement lorsque vous quittez le programme, retirez-vous à l'écran d'origine qui restaure l'historique et le placement de la fenêtre précédente.

Vous pouvez empêcher less de lancer dans un Altscreen en passant l'argument "-x".

less -X /path/to/some/file

Vous pouvez également passer "-x" comme variable d'environnement. Donc, si vous utilisez bash, placez-le dans ~/.bashrc:

export LESS="-X"

Toutefois, la présente invention concerne l'initialisation et la désinitialisation de Terminal (capacité terminale), ainsi d'autres points de vue lorsque vous utilisez less peut apparaître.

Une autre option serait d'utiliser screen et de définir l'option altscreen off dans ton ~/.screenrc. less _ n'effectuera pas l'écran et ne doit conserver la formatage des couleurs. Vraisemblablement tmux aura la même option.

Ceci Entrée de blog décrit le problème et offre des solutions différentes spécifiques à gnome-terminal avec succès varié.

72
George M

La solution de George n'a pas fonctionné pour moi, mais cette solution a fait (à partir de la Entrée de blog liée à sa réponse).

  1. $ infocmp -I xterm > ~/xterm-noclear.src

  2. Edit ~/xterm-noclear.src

    • changez le nom de la deuxième ligne de 'Xterm' à 'Xterm-Noclear', ou tout ce qui vous convient (modifier également "Xterm-Debian" s'il est présent)

    • supprimer les instructions 'SMCUP' et 'RMCUP' (par exemple "SMCUP =\E [? 1049H," et "RMCUP =\e [? 1049L,")

  3. $ mkdir ~/.terminfo

  4. $ tic ~/xterm-noclear.src (x/xterm-noclear doit apparaître dans votre répertoire ~/.terminfo)

  5. $ export TERM=xterm-noclear (Vérifiez maintenant le comportement de moins et, s'il est satisfait, ajoutez la ligne de directive à l'exportation à votre ~/.profile)

(J'ai copié ces instructions directement de la modification rejetée de @ Jah de la réponse de George.)

4
prl