87 votes

Comment puis-je ouvrir un fichier en lecture seule à partir de la ligne de commande avec emacs/vi/vim

Y a-t-il un moyen de dire à emacs/vi/vim (depuis la ligne de commande) que je veux voir le fichier en mode de visualisation ou en lecture seule.

Je sais comment ouvrir un fichier en lecture seule si emacs/vi/vim est déjà en cours d'exécution.

0 votes

Note : si vous n'avez pas les permissions en écriture sur le fichier, Vim l'ouvrira par défaut en mode lecture seule. En fait, je pense qu'il est plus facile de contrôler les permissions du fichier que de fournir un moyen "lecture seule".

6voto

Pour emacs, vous pouvez également utiliser le mode de visualisation.

emacsclient --create-frame --eval '(view-file "/tmp/EXAMPLE")'

ou une alternative à l'intérieur d'un terminal :

emacsclient --nw --eval '(view-file "/tmp/EXAMPLE")'

Ou vous pouvez utiliser mon script d'enrobage

6voto

nxdrvr Points 61

Pour simplement afficher le fichier sans pouvoir le modifier :

cat  | less

Dans less, vous pouvez passer en "mode édition de fichier" en appuyant sur la touche v. Cependant, vous ne pouvez pas modifier l'entrée standard, donc en redirigeant la sortie de cat vers less, cela empêche less de passer en mode 'édition' en appuyant sur 'v'.

Pour vim, la même approche

cat  | vim -

4 votes

Merci pour la suggestion v. Astucieux.

2 votes

+1, mais pas besoin du chat. Il suffit d'utiliser .

0 votes

@Sparkhawk, moins donnerait une erreur, je suppose que tu voulais dire moins , mais comme expliqué dans la réponse, en utilisant moins directement, l'utilisateur pourrait appuyer sur la touche v et passer en mode édition. En redirigeant chat vers moins, cela empêche que cela se produise.

6voto

jogama Points 51

Dans emacs, vous pouvez faire

emacs FICHIER -f view-mode

La coloration syntaxique est appliquée. Il n'ouvre pas simplement le fichier en tant que tampon en lecture seule. Certaines commandes, comme la recherche interactive, sont accessibles sans la touche de contrôle dans ce mode.

0voto

Azim Points 4541

Envoi d'un fichier vers la sortie standard, peut être acceptable étant donné la taille du fichier

cat   # Dump du fichier entier vers stdout
head  # Afficher les premières lignes
tail  # Afficher les dernières lignes

0voto

Je ne vais pas discuter de la réponse de n'importe quel utilisateur ici, mais j'aimerais ajouter quelques informations supplémentaires sur le fichier en mode lecture seule. Selon la documentation d'Oreilly Mode Lecture Seule Il y aura des moments où vous voudrez regarder un fichier mais voulez protéger ce fichier des frappes de touches et des changements involontaires. (Vous voudrez peut-être appeler un fichier volumineux pour pratiquer les mouvements vi, ou vous voudrez peut-être parcourir un fichier de commande ou un programme). Vous pouvez entrer un fichier en mode lecture seule et utiliser toutes les commandes de mouvement de vi, mais vous ne pourrez pas modifier le fichier.

Pour regarder un fichier en mode lecture seule, entrez l'une des commandes suivantes :

$ vi -R fichier

ou :

$ voir fichier

(La commande view, comme la commande vi, peut utiliser n'importe des options de ligne de commande pour avancer vers un endroit spécifique dans le fichier.) Si vous décidez de faire des modifications sur le fichier, vous pouvez outrepasser le mode lecture seule en ajoutant un point d'exclamation à la commande d'écriture :

:w!
ou :

:wq!

Si vous avez un problème pour écrire le fichier.

Pour plus d'informations, cliquez ici

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X