Jak mohu ve Vimu opustit režim jen pro čtení?
On 18 února, 2021 by adminOtevřel jsem soubor v režimu pouze pro čtení; existuje způsob, jak se dostat z režimu jen pro čtení?
Komentáře
Odpověď
Můžete to udělat:
:set noro
Tím se zruší příznak jen pro čtení, ale pokud podkladový soubor stále nelze zapisovat, pak na něj vim stále nebude moci zapisovat.
Komentáře
- jak to zvrátit a vrátit se zpět pouze ke čtení?
- @LouisHong velmi snadno:
:set ro
. - To je ideální, pokud otevřete zapisovatelný soubor s
view
ale pak se rozhodněte jej upravit. - Opačný může být také užitečný. Například
psql
má meta příkaz (\ev
) pro úpravu pohledu SQL, který otevírá vim pro zápis. Ale pokud se chci ujistit, že ve skutečnosti nezměním (ve výrobě!) ' t (ve výrobě!), Mohu okamžitě:set ro
. 🙂
Odpověď
chmod
můžete spustit zevnitř vim:
:!chmod +w %
!
znamená spustit příkaz prostředí a %
je aktuální název souboru. Můžete také vynutit zápis souboru:
:w!
Odpovědět
Kromě toho na odpověď Michaela Mrozka , můžete ke své .vimrc
přidat řádek, který vám umožní zapisovat do souboru které jste zapomněli otevřít se zvýšenými oprávněními:
" Allows writing to files with root priviledges cmap w!! w !sudo tee % > /dev/null
Pokud je soubor pouze ke čtení, musíte zadat pouze : w ! ! , budete vyzváni k zadání hesla a poté bude soubor úspěšně zapsán.
Odpovědět
Zatímco :set noro
dělá práci, nekontroluje, zda je soubor otevřen jinou instancí vim nebo aktualizuje soubor, pokud je změněn externě.
Chcete-li, aby to bylo možné upravovat a zkontrolovat swapové soubory (což je výchozí otevření souboru s vim), stačí použít příkaz edit (: help edit):
:e
Všimněte si, že pokud byl soubor od té doby manipulován (i mimo vim), aktualizuje změny v aktuální vyrovnávací paměti (což považuji za obvykle žádoucí).
Odpověď
Tady jdu, i když trochu pozdě, možná jste již vyřešili své pochybnosti;) Neviděl jsem jakýkoli z komentářů způsobem, který znám s vim , takže jej přidám:
Jakmile upravujete soubor, stisknete :w
nebo :wq
a zobrazí se otravná zpráva „ E45 je nastavena možnost „pouze pro čtení“ (přidat! k přepsání) „
Můžete zadat
:w !sudo tee %
-
w
zapíše vyrovnávací paměť, -
!sudo
zavolá shell pomocí sudo, -
tee
přesměruje výstupvim :w
na výstup s tee a - je aktuální název souboru
A to by mělo stačit. Toto vás vyzve k opětovnému načtení souboru ve vim, pro to, co musíte stisknout L
Odpověď
Vyzkoušejte tento:
vim -R "filename"
otevře se v režimu jen pro čtení, pak stačí udělat tento příkaz: q
Zkusil jsem to a fungovalo to pro mě
komentáře
- Omlouváme se. Netuším, co říkáte.
Odpovědět
Zkuste použít sudo
. Protože root
musíte soubor otevřít. Sudo
je příkaz, kde můžete požádat o povolení linux.
např.
sudo vim "filename"
Komentáře
- To nemá nic společného s oprávněními nebo oprávněními.Kromě toho byste nikdy neměli používat
sudo
ke spuštění editoru; místo toho použijtesudoedit
.
!
dow
příkaz provede trik, jak uvedl Michael.w
vykřičník. heh