повернення в режимі вставки, не стираючи символів


10

Я новачок у vi , насправді я почав вчитися vi з сьогоднішнього дня, і я застряг у поведінці клавіші зворотного простору . Насправді, коли я запустив vi на моєму Ubuntu 12.04 вперше, моя клавіша зворотної області працювала нормально, але після цього вона почала вести себе дивно. Щоразу, коли я натискаю на зворотну простір у режимі вставки, він просто переміщується на одне місце ліворуч, а не стирає символ. Як я можу повернути функцію зворотного простору за замовчуванням? Зауважте, що я не хочу встановлювати vim або встановлювати несумісність.


5
Це традиційна поведінка vi. Якщо у вас є можливість встановити несумісність, ви вже використовуєте vim.
Стефан Шазелас

Мені невідомо, що vi встановлений на Ubuntu. vi в світі Linux, на мій досвід, є лише символічним посиланням на vim. Якщо ви хочете дізнатися справжнє vi або встановіть nvi або проект hairloom vi.
Predrag Punosevac

Відповіді:


6

Іноді viкоманда є псевдонімом для vimта, коли викликається, як viдозволяє його vi-mode.

Навіть у традиційному режимі резервна область видаляє символ, але не відображає його як видалений негайно. (Після натискання клавіші ESC символи відпадають.)

Здогадайтесь, вам доведеться вибирати те, як використовувати те, viщо відповідає описаній поведінці, або використовувати vimяке здатне зробити це так, як ви цього очікуєте.


9
  1. Перевірте, чи використовуєте ви фактично звичайну viверсію

    $ vi --version | head -n 1

    Це дає на моїй машині (Debian 7)

    VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Feb 10 2013 02:27:59)

    vim можна змусити поводитись більше, як vi. Це можна зробити, подавши команду viзамість vimкомандного рядка, де viє лише сим-посилання на vim, у цьому випадку vim відкривається у режимі vi. Ви можете перевірити це за допомогою :set compatible?.

  2. Як зазначалося в попередній відповіді, ефект зворотного простору стає видимим лише після виходу з нього, insert modeколи set compatibleввімкнено.

Примітка. У режимі, сумісному vi, ви не можете повертати назад текст, який був раніше введений (раніше введений insert mode), або eol або відступ у insert mode. подивитися :help 'bs'

    'backspace' 'bs'        string  (default "")
                            global
                            {not in Vi}
    Influences the working of <BS>, <Del>, CTRL-W and CTRL-U in Insert
    mode.  This is a list of items, separated by commas.  Each item allows
    a way to backspace over something:
    value   effect
    indent  allow backspacing over autoindent
    eol     allow backspacing over line breaks (join lines)
    start   allow backspacing over the start of insert; CTRL-W and CTRL-U
            stop once at the start of insert.

    When the value is empty, Vi compatible backspacing is used.
    For backwards compatibility with version 5.4 and earlier:
    value   effect
      0     same as ":set backspace=" (Vi compatible)
      1     same as ":set backspace=indent,eol"
      2     same as ":set backspace=indent,eol,start"

Спробуйте різні налаштування, щоб зрозуміти їх значення: Введіть символи / розриви рядків та відступи в режимі вставки, вийдіть і вставте режим знову, а потім спробуйте змінити відстань.

Користувачі, які не знайомі з поведінкою vi і не наполягають на використанні звичайного vi (все одно не рекомендується) :set backspace=indent,eol,start. У Afaik на Debian зазвичай встановлений загальносистемний конфігураційний файл, встановлений із цим налаштуванням.

Ви можете отримати поточний параметр через :set bs?.


5

Створіть новий файл у домашньому каталозі користувача під назвою .vimrc, якщо його ще немає. Тут ми створюватимемо та редагуватимемо одночасно з vi

sudo vi ~/.vimrc

Додайте наступні команди, які включають вимкнення режиму сумісності та функціональність стирання клавіш зворотної області:

set nocp
set backspace=indent,eol,start

Збережіть та закрийте файл за допомогою

:wq

Вимкнення режиму сумісності дозволяє використовувати клавіші зі стрілками, до яких ми, старі хлопці, звикли.

Оскільки ми створили файл sudo'd, власник на файл, ймовірно, буде кореневим. Ви можете подавити файл користувачеві.

У моєму випадку це було для малинового пі, тож користувач та група - це pi:

chown pi:pi ~/.vimrc

Тепер знову запалюй vi і насолоджуйся!


1
set nocpзробив для мене трюк
Луї М


0

просто розмістіть у своєму ~/.zshrc

bindkey "^?" backward-delete-char

0

Створення .vimrc у моєму домашньому каталозі, який містить лише

встановити nocp

виправили мою проблему із зворотним простором, не видаляючи персонажа з екрана Діка С.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.