Klávesové zkratky přidávají znaky v editoru vi

143

Když jsem se pokusil použít klávesy se šipkami v režimu vložení v editoruvi, do editoru se vkládají následující znaky:

  • pro dostanu B,
  • pro dostanu A,
  • pro dostanu D,
  • pro dostanu C.

Pomozte mi vyřešit tento problém.

    
dané bvb 05.10.2013 07:04

11 odpovědí

180

Pokud ještě nemáte soubor.vimrc ve svém domovském adresáři, vytvořte jej pomocí následujícího:

vim ~/.vimrc

Přidejte tento řádek do horní části souboru:

set nocompatible

Uložte soubor a toto by mělo problém vyřešit. :)

    
odpověděl Gaurav Manchanda 05.10.2013 09:23
47

Instalace vim - > To problém vyřeší.

sudo apt-get install vim

Existuje mnoho dobrých vim / vi tutoriálů na youtube nebo na webu obecně. Pro váš problém naleznete zde

Potom pokračujte otevření souborů jako obvykle :

vi desired-file
    
odpověděl sthysel 21.11.2012 09:03
26

Při použitívi při klepnutí na i aktivujete příkaz Vložit . Tento příkaz umožňuje vložit text do souboru.
A správně, když kliknete:

  • na se vloží "A",
  • na se vloží "B",
  • ...

Do deaktivujete tento příkaz Deaktivaci příkazu vvi: stačí kliknout na Esc
A pak se vrátíte do běžného používání kláves se šipkami:

  • nahoru,
  • dolů,
  • ...

FYI, zde jsou některé příkazyvi:
Z tohoto zdroje .

:x Návrat Quit vi , napište modifikovaný soubor do souboru pojmenovaného v původním vyvolání%:wq Return Quit vi , napište upravený soubor do souboru pojmenovaného v původním vyvolání
:q Návrat ukončení (nebo ukončení) vi >:q! Návrat Quit vi i když nejnovější změny nebyly uloženy pro toto volání vi

přesunout kurzor dolů jeden řádek Přesunout kurzor vpravo jeden znak Přesunout sub>

u vrátit zpět co jste právě udělali; jednoduché přepnutí
. redo , co jste právě udělal

vložte text před začátkem aktuálního

i vložit text před kurzorem, dokud Esc line, dokud Esc nezasáhne do% k_kde% připojit text, dokud Esc > do konce aktuálního řádku, dokud se Esc nezobrazíI otevřít Esc dosáhla otevřít a vložil text do nového řádku nad aktuálním řádkem, dokud Esc nezasáhne p>

A nahradit jediný znak pod kurzor (není třeba Esc )o změnit s novým textem, počínaje znakem pod kurzorem, dokud Esc nezadá
O smazat jediný znak pod kurzoremr delete N znaky, začínající znakem pod kurzorem
cw smazat jediné slovo začínající znakem pod kurzorem
x změnit znaky v aktuálním řádku, dokud Esc nezasáhne
Nx smazat zbytek řádku začínající aktuální pozicí kurzoru

dw smazat celý aktuální řádekC smazat N řádky začínající aktuálním řádkem; např. 5dd odstraní 5 řádků
D kopírovat (zkrátit) aktuální řádek do vyrovnávací paměti
dd kopírovat další řádky N včetně aktuálního řádku do vyrovnávací paměti
Ndd vložte řádky v vyrovnávací paměti do textu po aktuálním řádku

yy (nula) přesunout kurzor na začátek aktuálního řádku (kurzorem)
% cursor toNyy move aktuální kurzor%p přesunout kurzoru na začátek dalšího slova
0 přesunout kurzor zpět na začátek předchozího slova%$ Return nebow přesunout kurzor na první řádek v souborub Return nebo:0 silný> kurzor na řádku n
1G Zpět nebo:n přesunout kurzor na poslední řádek v souboru

nG vyhledávání vpřed pro výskyt řetězce v textu
:$ hledání dozadu pro výskyt řetězce v textu% co_kde % přesunout na další výskyt vyhledávacího řetězce
G přesunout na další výskyt vyhledávacího řetězce v opačném směru

    
odpověděl Boris 05.10.2013 08:52
16

Chcete-li vypnout písmena tisku při stisknutí šipek v režimu úprav, můžete provést následující kroky:

vi $HOME/.exrc 

(vytvořte soubor, pokud neexistuje) a přidejte do něj řádekset nocompatible a uložte.

    
odpověděl Aniket Thakur 08.08.2015 14:46
11

V editoru vi jsou tři režimy:

  • příkazový režim
  • vstupní režim
  • výchozí režim.

Když otevřete soubor, jste ve výchozím režimu. Nyní, pokud chcete jít do určité pozice ve vašem textu, stačí použít klávesy se šipkami nebo h , j , k l . Všimněte si, že by to fungovalo pouze v případě, že jste stiskli tlačítko i (nebo jakýkoli jiný vstupní režim, který zadá příkaz jako a , A )

Důvodem pro "B" může být skutečnost, že klávesy se šipkami ve vstupním režimu nefungují jako klávesy se šipkami, takže stačí stisknout klávesu Esc kdykoli přejít do výchozího režimu. Kdy chcete přejít na vstupní režim, stiskněte tlačítko i nebo a a pro navigaci stiskněte klávesu i kbd>, j , k , l .

    
odpověděl ps_cool 21.11.2012 08:14
6

Měl jsem stejný problém, ale nejen na mém místním stroji, ale i na spojení pomocí tmelu na stroji ve Win7 VM přes citrixový přijímač. Místní hostitel i vzdálení hostitelé se po přeinstalaci Ubuntu projevují přesně stejným problémem.

Po zjištění, že

$ localectl list-keymaps 
Couldn't find any console keymaps.

Způsobuje toto podivné chování v systému VI, které jsem nainstaloval do datové konzole, která řeší problém!

sudo apt-get install console-data
    
odpověděl kitingChris 18.01.2017 11:53
3

Všechna vysvětlení jsou trochu bizarní. Musím nainstalovat, ale ne nainstalovat.

Kontrola alternativ:/etc/alternatives/vi & rightarrow; /usr/bin/vim.tiny

Takževi jevim.tiny a používá/etc/vim/vimrc.tiny.

A vvimrc.tiny najdete následující řádek:

set compatible

Který je téměř jediný v tomto souboru. Všimněte si, že v/etc/vim/vimrc používánocompatible.

Takže buď nainstalujte vim, nebo změňte souborvimrc.tiny, nebo vytvořte svůj vlastní~/.vimrc, který by měl obsahovat řádek:

set nocompatible
    
odpověděl Gunstick 10.01.2017 23:11
2

Poznámka:

V ostatních příspěvcích jsou dobré informace, ale žádné z příspěvků se nezkoumalo vysvětlit proč toto chování proběhlo. Mnoho lidí se na to v budoucnu chystá. Také byste mohla tuto otázku označit za vyřešené, jelikož vám někdo z předchozích příspěvků pravděpodobně pomohl?

Zde je vysvětlení :

Vi je editor, který byl po dlouhou dobu s koreny zpět do systémů Unix. Je to dobrý nástroj, ale byl opakován a nyní je lepší. Vim byl napsán později a je to opakování. Lidé obvykle označují vi jako "vim-minimal" a vim je "vylepšená" verze vi. Můžete si to myslet takto: vi je jádro a vim se rozšiřuje.

Pravděpodobně jste objevili chování :

Chcete-li zjistit tento problém, stisknutím klávesy i "vstoupíte do režimu vložit a použijete klávesy se šipkami pro navigaci na správný řádek a úpravu bod. To způsobilo váš neočekávaný problém s char.

Řešení 1 nebo 2

1)vi someFile Při použití vi se nejprve přesuňte na bod editace a poté zadejte do režimu vložení.

2)vim someFile Stačí použít vim od začátku.

Nemohu dostatečně zdůraznit, abyste si mohli přečíst manuál (manuálové stránky) nebo použít -h pro pomoc. Jakmile se přizpůsobíte vzorům ve skořápce, stránky člověka se stanou vaším nejlepším přítelem. Příklad:man vi neboman vim

Ověřte, zda je Vim nainstalován .

Otevřete okno konzoly a proveďte:

dpkg --list | grep vim

Pokud dostanete něco podobného, ​​pak můžete začít používat vim.

~ $ dpkg --list | grep vim
ii  vim         2:7.4.052-1ubuntu3  amd64  Vi IMproved - enhanced vi editor
ii  vim-common  2:7.4.052-1ubuntu3  amd64  Vi IMproved - Common files
ii  vim-runtime 2:7.4.052-1ubuntu3  all    Vi IMproved - Runtime files
ii  vim-tiny    2:7.4.052-1ubuntu3  amd64  Vi IMproved - enhanced vi editor - compact version

Pokud se příkazový řádek vrátí s ničím, pak vim není nainstalován. Pomocí následujících příkladů aktualizujte své úložiště a poté nainstalujte vim.

sudo apt-get update
sudo apt-get install vim

Pokud máte šanci, že používáte vi nebo vim pouze při hledání na internetu, jak něco opravit a zapomenete zapsatvim, existuje jeden způsob, jak ho vyřešit do budoucna. Upozorňuji vás, abyste věnovali pozornost. Můžete použít alias k přepsání vi s odkazem na vim, takže bez ohledu na to, co píšete v občasné budoucnosti, získáte vim bez toho "oops!" moment. Alias ​​můžete vždy později smazat.

Zadejtevim .bashrc. Přesuňte se na prázdný řádek pouze na~ (nebo na jiný řádek, který začínáalias (takže jsou seskupeny) a potom stiskněte klávesu i pro zadání - Na svůj vlastní samostatný řádek zadejte následující:

alias vi='vim'

StiskněteEsc a potom zadejte:wq. Nyní je nutné soubor znovu načíst. Typsource .bashrc Jakýkoli jiný shell, který se otevře po provedení těchto úprav, automaticky načte soubor .bashrc.

    
odpověděl D75 30.10.2016 05:20
1

Tradiční editor vi neuznává klávesy se šipkami (... affair). Existují dvě řešení:

  1. použijte vim namísto vi
  2. pro navigaci použijte h, j, k a l (při editaci na tradiční vi btw nelze navigovat)
odpověděl MadMike 05.10.2013 07:51
1

To může být také kvůli proměnnéTERM; nastavte jej například takto:

 export TERM=xterm
    
odpověděl Jasper Nuyens 07.07.2017 15:54
1

V některých systémech není k dispozici možnostnocompatible nebo problém nemusí být vyřešen, pokud plugin přeruší funkci klíčů se šipkami. Zde je řešení ...

Upravte soubor.exrc tak, aby obsahoval následující řádky:

map! ^[OA ^[ka
map! ^[OB ^[ja
map! ^[OC ^[la
map! ^[OD ^[ha

Nebo pokud problém existuje pouze v normálním režimu, můžete změnit nanmap a přeskočit následujícía takto:

nmap! ^[OA ^[k

a tak dále.

Zde jsou klíčové kombinace potřebné pro jejich vytvoření (pouze první):

map! <CTRL-V><Up-Arrow> <CTRL-V><ESC>ka

Tím uniká režim úprav, pohybuje se v hledaném směru a znovu zapíná režim úprav. To je zapotřebí k překonání Vi čtení escape sekvence jako sekvence doslova A> atd.

Zdroj: Odkaz

    
odpověděl Dominic Comtois 08.06.2017 04:33