Urxvt

De Vim-fr

rxvt-unicode, aussi appelé URxvt, est un émulateur de terminal VT102 pour le système de fenêtres X.

URxvt est un logiciel libre distribué sous licence GNU/GPL.

Il est issu de Rxvt (R pour « our ») lui même issu de Xvt (pour « X Virtual Terminal »)

Il supporte notamment :

  • L'internationalisation via Unicode
  • L'affichage simultané de différentes polices (dont Xft) et locales
  • Un mode démon qui permet d'économiser des ressources
  • Un mécanisme d'extensions Perl
  • Une pseudo-transparence


Les bases

Configuration

Toutes les modifications se font dans le fichier ~/.Xdefaults (ou ~/.Xresources), si le fichier n'existe pas, créez le. Si il existe, rajoutez les informations à la fin. Utilisez xrdb (xrdb -load ~/.Xdefaults) pour appliquer vos changements.

La liste de ces ressources n'est pas exhaustive, loin de là; voyez les toutes dans man urxvt.

{{bleu |Vraie}} transparence }}
URxvt*transparent:           false
{{bleu|Notifications du terminal au WM}}
Uxvt.urgentOnBell:           true
{{bleu|!Activation de la bordure}}
URxvt*borderLess:            true
{{bleu|!Couleur de fond}}
URxvt*background:            black
{{bleu|!Couleur de l'écriture}}
URxvt*foreground:            white
{{bleu|!Scrollbar activée}}
URxvt*scrollBar:             false
{{bleu| !Clic sur un lien ouvre firefox}}
URxvt.urlLauncher:           firefox
{{bleu|!Activation des options par défaut, et des clics sur les liens}}
URxvt.perl-ext-common:       default,matcher
{{bleu|!Couleur des liens}}
URxvt.colorBD:               white
{{bleu|!Couleur du curseur}}
URxvt.cursorColor:           #ffffff
{{bleu|!Clignotement du curseur}}
URxvt.cursorBlink:           true
{{bleu|!Taille du terminal}}
URxvt.geometry:              80×25
{{bleu|!Taille de l'écriture}}
URxvt.font:                  xft:DejaVu Sans Mono:pixelsize=14:antialias=true
{{bleu|!Descend au bas de l'écran lorsqu'une touche non-spéciale est appuyée}}
URxvt*scrollTtyKeypress:     on
{{bleu|!Ne descend pas au bas de l'écran à l'apparition d'une nouvelle ligne}}
URxvt*scrollTtyOutput:       off
{{bleu|!Se déplace pour compenser l'apparition de nouvelles lignes}}
URxvt*scrollWithBuffer:      on
{{bleu|!Pourcentage d'estompage lorsque le terminal n'a pas le focus}} 
URxvt*fading:                50

Sélection de texte

Dans Urxvt sans que Vim n'utilise la souris :

  • Mouse-1 : sélection
  • Ctrl+Alt+Mouse-1 : sélection verticale

Dans Urxvt avec Vim utilisant la souris (cf. :h mouse) (pas tout à fait pratique, notamment s'il y a des replis, mais pouvant aider dans d'autres programmes en mode-texte utilisant la souris (comme Elinks)) :

  • Shift+Mouse-1 : sélection
  • Shift+Ctrl+Alt+Mouse-1 : sélection verticale

Les petits plus

Coloration du curseur en fonction du mode de Vim

Lorsque l'on utilise l'interface graphique GTK (vim -g), la forme du curseur change en fonction du mode dans lequel Vim se trouve (Normal ou Insertion).

Urxvt ne permet pas encore (ni d'ailleurs aucun autre terminal à ma connaissance), de changer la forme du curseur, néanmoins il est possible de changer sa couleur.

C'est ce que fait ce bout de configuration à incorporer à son ~/.vimrc.

Notez qu'est également supporté le cas où screen est lancé dans Urxvt (ce que je vous recommande).

    if !has("gui_running")
    " À défaut de pouvoir changer la forme du curseur
	" en fonction du mode de Vim, on peut changer sa couleur
	" en passant par des fonctions de contrôle.
	if &term =~ "rxvt-unicode"
		" From ECMA-48:
		"   OSC - OPERATING SYSTEM COMMAND:
		"     Representation: 09/13 or ESC 05/13 (this is \033] here)
		"     OSC is used as the opening delimiter of a control string for operating system use.
		"     The command string following may consist of a sequence of bit combinations
		"     in the range 00/08 to 00/13 and 02/00 to 07/14.
		"     The control string is closed by the terminating delimiter STRING TERMINATOR (ST).
		"     The interpretation of the command string depends on the relevant operating system.
		" From :h t_SI:
		"   Added by Vim (there are no standard codes for these):
		"     t_SI start insert mode (bar cursor shape)
		"     t_EI end insert mode (block cursor shape)
		let &t_SI = "\033]12;red\007"
		let &t_EI = "\033]12;green\007"
 
		:silent !echo -ne "\033]12;green\007"
		autocmd VimLeave * :silent :!echo -ne "\033]12;green\007"
	endif
	" screen rajoute une couche qu'il faut percer.
	if &term =~ "screen"
		" From man screen:
		"   Virtual Terminal -> Control Sequences:
		"     ESC P  (A)  Device Control String
		"                 Outputs a string directly to the host
		"                 terminal without interpretation.
		"     ESC \  (A)  String Terminator
		let &t_SI = "\033P\033]12;red\007\033\\"
		let &t_EI = "\033P\033]12;green\007\033\\"
 
		:silent !echo -ne "\033P\033]12;green\007\033\\"
		autocmd VimLeave * :silent :!echo -ne "\033P\033]12;green\007\033\\"
	endif
endif

Utilisation de C-Tab pour changer d'onglet

if !has("gui_running")
	" La plupart des émulateurs de terminaux envoient Tab pour C-Tab,
	" aussi ai-je dans mon ~/.Xresources :
	" URxvt*keysym.C-Tab: \033[27;5;9~
        " Ou:
        " URxvt.keysym.Control-Tab: \033[27;5;9~
        " URxvt.keysym.Control-Shift-ISO_Left_Tab: \033[27;6;9~
 
        map <Esc>[27;5;9~ :tabnext<cr>
        map <Esc>[27;6;9~ :tabprevious<cr>
 
endif

Liens externes