ouvrir vim depuis le script shell bash
Je veux shell bash qui fait
- ouvrir un fichier à l'aide de vim
- écrire quelque chose dans le fichier
- enregistrez et fermez le fichier
bashpromt# cat mybash.sh echo "about to open a file" vim file.txt #I need to use vim application to open a file #now write something into file.txt #close the that file. echo "done."
EST-ce possible? J'ai trouvé quelque chose comme script vim , mais vous ne savez pas comment l'utiliser.
Ou quelque chose comme "ICI" doc peut être utilisé pour cela ?
EDIT: j'ai besoin de vérifier que l'éditeur vim fonctionne bien sur notre système de fichiers.Donc j'ai besoin d'écrire un script qui appelle vim et fait de la commande et de la fermer. Mon exigence n'est pas apte à faire ce genre de chose "echo "quelque chose" > file.txt" . J'ai eu à ouvrir le fichier à l'aide de vim.
source d'informationauteur webminal.org
Vous devez vous connecter pour publier un commentaire.
Vim dispose de plusieurs options:
-c
=> passer les commandes ex. Exemple:vim myfile.txt -c 'wq'
à la force de la dernière ligne d'un fichier pour être de retour à la ligne de résiliation (à moins quebinary
est définie d'une certaine façon par un script)-s
=> jouer un scriptsortie qui a été enregistré avec-W
. Par exemple, si votre fichier contient desZZ
puisvim myfile.txt -s the_file_containing_ZZ
fera la même chose que précédemment.À noter également que, invoquée comme
ex
vim va démarrer en mode ex ; vous pouvez essayerex my_file.txt <<< wq
ex
est la version ligne de commande pourvi
et beaucoup plus facile à utiliser dans des scripts.Vous demandé comment écrire "quelque chose" dans un fichier texte via vim et pas de réponse a nécessairement couvert encore.
Pour insérer du texte:
:i
entre en mode d'insertion. Toutes les lignes suivantes sont insérées texte jusqu'à ce que.
est vu apparaissant par lui-même sur sa propre ligne.Ici est de savoir comment la recherche et de l'insérer en tant que bien. Vous pouvez faire quelque chose comme:
Cela permettra de trouver la première sélection qui correspond à l'expression régulière spécifiée par
:/
placez le curseur à l'emplacement spécifié par\zs
et de passer en mode insertion, après le curseur.Vous pouvez déplacer
\zs
pour obtenir différents résultats. Par exemple:Cela va changer à la première occurrence de "début de match en fin de match" à "début de match mon texte à insérer en fin de match".
Si vous voulez permettre à tous les espaces dans vos recherches entre les mots-clés, utilisez
\_s*
. Par exemple, la recherche d'une fonction qui retourne 0::/\_s*return\_s*0}
Si vous êtes désireux de voir le travail fait à l'intérieur de vim ou gvim vous pouvez utiliser l'option --remote-envoyer
Ce sera lent, mais à faire ce que vous souhaitez.
Nous avons d'abord ouvrir un gvim dans lequel nous pouvons ouvrir l'ensemble de nos fichiers (pour l'efficacité)
Avec la première gvim ligne nous d'ouvrir le fichier précédemment ouvert gvim.
Sur la deuxième gvim ligne nous envoyer une commande à l'instance déjà ouvert de gvim (avec le fichier souhaité, toujours ouvert).
La commande est la suivante:
<ESC>
- sortir de n'importe quel mode que gvim peut avoir été eni something to the file
- aller dans le mode insertion et le type de "quelque chose dans le fichier"<ESC>
- sortir du mode insertion:wq
- écrire le fichier et quitter vimRécemment, j'ai répondu une question similaire, "automatisé de modifier de plusieurs
fichiers". Peut-être la solution que je décris, il saura répondre à vos besoins.