Comment afficher le nom du fichier que je suis en train de modifier avec vim sur le titre du terminal?


20

Je modifie plusieurs fichiers situés dans le même dossier, dans plusieurs onglets, sur un seul terminal.

pwd(répertoire dans lequel je travaille actuellement) est affiché en haut de l'en-tête du terminal, mais pas le nom du fichier que je modifie. Cela devient confus lorsque vous travaillez avec plusieurs fichiers dans le même répertoire.

Comment afficher le nom du fichier actuel en haut du terminal en plus de pwd.

Je cours vimdans un shell bash gnome-terminal, le 12.04 LTS.


1
Modification à l'aide de quel éditeur? Dans quelle coquille? Quel émulateur de terminal?
terdon

@terdon - Édition avec Vim, bash Shell, émulateur xterm
malhar

2
Veuillez modifier votre question pour ajouter des informations supplémentaires, elle est difficile à lire et facile à manquer dans les commentaires. Vous pouvez ensuite envoyer une requête ping à l'utilisateur qui a demandé les informations en laissant un commentaire et en incluant un @avant son nom d'utilisateur. Par exemple, pour me ping: @terdon.
terdon

xtermn'a pas d'onglets. Etes-vous sûr que c'est le cas xterm? echo $TERMne renvoie généralement pas le nom de votre émulateur de terminal si c'est ce que vous avez fait.
terdon

@terdon Oui, j'ai utilisé echo $ TERM. il produit "xterm". J'utilise le terminal par défaut ubuntu 12.04 LTS 64 bits. Existe-t-il d'autres moyens de vérifier les détails de l'émulateur.
malhar

Réponses:


13

Vous devez avoir / créer un fichier nommé .vimrcdans votre répertoire personnel avec le code suivant à l'intérieur:

let &titlestring = $USER . "@" . hostname() . " " . expand("%:p")
if &term == "screen"
  set t_ts=^[k
  set t_fs=^[\
endif
if &term == "screen" || &term == "xterm"
  set title
endif

entrez la description de l'image ici

Source: gnome-terminal ne permet pas de changer le titre


Pour créer ^ [, ce qui est d'échappement, vous devez entrer CTRL + V <Esc>
tinmarino

8

La réponse actuelle (acceptée) ne fonctionne pas si vous changez de fichier / tampon dans l'une de vos sessions vim. Le titre ne sera pas mis à jour.

Ce qui suit est suffisant pour avoir des titres mis à jour automatiquement dans gnome-terminal également lorsque vous changez de fichiers en utilisant :e foo.txt, :b0, :b#, etc.

Placez-le simplement dans votre ~/.vimrcfichier:

autocmd BufEnter * let &titlestring = ' ' . expand("%:t")             
set title

Système: Ubuntu 14.10, vim 7.4.273, gnome-terminal 3.6.2-0ubunt.


Ne devrait pas set titleêtre sur la même ligne, après |?
Victor Sergienko

Relatif à la question: pour restaurer le titre après avoir quitté vim, ajoutez set titleold=à .vimrc.
Victor Sergienko

5

Ajoutez simplement

set title

à votre ~/.vimrc.

Exemple de titre: testfile (~ / Documents) - VIM


1
C'est la seule réponse qui a fonctionné pour moi et c'est la plus courte.
user10089632

1

Vous pouvez ajouter le nom du fichier que vous modifiez dans un onglet de la manière suivante:

  1. allez dans le menu en haut du terminal. Terminal-> Définir le titre-> Ici vous ajoutez le nom du fichier que vous éditez actuellement

Par exemple, lorsque vous ouvrez le terminal, l'en-tête du terminal affiche uniquement "~". pwd montre / home / xxx /

Supposons qu'à cet emplacement, vous modifiez un fichier ABC.cpp, vous pouvez définir le titre de l'onglet sur "~ / ABC.cpp" en ajoutant "/ABC.cpp" dans le champ Définir le titre.

De même, vous pouvez également répéter cette opération pour d'autres onglets.


4
Et vous ferez ces changements à chaque fois que vous éditez un autre fichier?
Cela

0

Cela change également le titre de la fenêtre si vous renommez un tampon:

set title
augroup WindowTitleGroup
  autocmd!
  autocmd BufEnter,BufFilePost * let &titlestring = expand('%:t')
augroup end

Placer la commande dans un groupe évite de l'exécuter plusieurs fois lors de l'approvisionnement vimrcplusieurs fois.

Cela fonctionne bien avec vim-eunuch qui vous permet de renommer un fichier en utilisant :Rename.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.