ex
je verze příkazového řádku pro vi
a mnohem snadněji se používá ve skriptech.
ex $yourfile <<EOEX
:%s/$string_to_replace/$string_to_replace_it_with/g
:x
EOEX
Ptali jste se, jak zapsat „něco“ do textového souboru přes vim a žádná odpověď to ještě nezbytně nepokryla.
Vložení textu:
ex $yourfile <<EOEX
:i
my text to insert
.
:x
EOEX
:i
přejde do režimu vkládání. Všechny následující řádky jsou vloženy textem do .
je vidět, jak se objevuje sám na svém vlastním řádku.
Zde je také popsáno, jak hledat a vkládat. Můžete udělat něco jako:
ex $yourfile <<EOEX
:/my search query\zs
:a
my text to insert
.
:x
EOEX
Tím se najde první výběr, který odpovídá regulárnímu výrazu určenému :/
, umístěte kurzor na místo určené \zs
a přejděte do režimu vkládání za kurzor.
Můžete přesunout \zs
k dosažení různých výsledků. Například:
ex $yourfile <<EOEX
:/start of match \zs end of match
:a
my text to insert
.
:x
EOEX
Tím se změní první výskyt „začátek shody konec shody“ na „začátek shody můj text pro vložení konce shody“.
Chcete-li při vyhledávání mezi klíčovými slovy povolit libovolné množství mezer, použijte \_s*
. Například hledání funkce, která vrací 0::/\_s*return\_s*0}
Pokud chcete vidět práci prováděnou uvnitř vim nebo gvim, můžete použít --remote-send
gvim --servername SHELL_DRIVER
bashpromt# cat mybash.sh
#!/bin/bash
echo "about to open $1"
gvim --servername SHELL_DRIVER $1 #I need to use vim application to open a file
#now write something into file.txt and close it
gvim --servername SHELL_DRIVER --remote-send '<ESC>i something to the file<ESC>:wq<CR>'
echo "done."
Bude to pomalé, ale udělá to, co chcete.
Nejprve otevřeme gvim, ve kterém můžeme otevřít všechny naše soubory (pro efektivitu)
S prvním řádkem gvim otevřeme soubor v dříve otevřeném gvim.
Na druhém řádku gvim odešleme příkaz do dříve otevřené instance gvim (se stále otevřeným požadovaným souborem).
Příkaz je následující:
<ESC>
- opusťte jakýkoli režim, ve kterém mohl být gvim
i something to the file
- přejděte do režimu vkládání a zadejte "něco do souboru"
<ESC>
- opustit režim vkládání
:wq
- zapište soubor a ukončete vim
Vim má několik možností:
-c
=> předat ex příkazy. Příklad:vim myfile.txt -c 'wq'
vynutit ukončení posledního řádku souboru novým řádkem (pokud neníbinary
je nějakým způsobem nastaveno skriptem)-s
=> přehrajte skript, který byl nahrán pomocí-W
. Pokud například váš soubor obsahujeZZ
a potévim myfile.txt -s the_file_containing_ZZ
udělá to samé jako předtím.
Všimněte si také, že je vyvoláno jako ex
, vim se spustí v ex režimu; můžete zkusit ex my_file.txt <<< wq