backspace trong chế độ chèn không xóa ký tự


10

Tôi mới làm quen với vi , thực ra tôi đã bắt đầu học vi từ hôm nay và tôi đã bị kẹt trước hành vi của phím xóa lùi . Thực tế khi tôi kích hoạt vi trên Ubuntu 12.04 lần đầu tiên, phím backspace của tôi hoạt động bình thường nhưng sau đó nó đã bắt đầu hoạt động một cách kỳ lạ. Bất cứ khi nào tôi nhấn phím lùi trong chế độ chèn, nó chỉ di chuyển một nơi sang trái thay vì xóa ký tự. Làm thế nào tôi có thể lấy lại chức năng backspace mặc định? Xin lưu ý rằng tôi không muốn cài đặt vim hoặc cài đặt không liên quan.


5
Đó là hành vi vi truyền thống. Nếu bạn có tùy chọn đặt tính không tương thích, thì bạn đã sử dụng vim.
Stéphane Chazelas

Tôi không biết rằng vi được cài đặt trên Ubuntu. vi trong thế giới Linux theo kinh nghiệm của tôi chỉ là một liên kết tượng trưng đến vim. Nếu bạn muốn tìm hiểu vi thực hoặc cài đặt nvi hoặc dự án tóc vi.
Predrag Punosevac

Câu trả lời:


6

Đôi khi vilệnh là bí danh cho vimvà khi được gọi là vikích hoạt chế độ vi của nó.

Ngay cả trong chế độ backspace truyền thống đang xóa ký tự, nhưng không hiển thị nó như bị xóa ngay lập tức. (Sau khi nhấn ESC, các ký tự sẽ biến mất.)

Đoán bạn phải chọn giữa việc sử dụng viđi kèm với hành vi được mô tả hoặc sử dụng vimcó thể thực hiện theo cách bạn mong đợi.


9
  1. Kiểm tra xem bạn có thực sự sử dụng đơn giản vithông qua

    $ vi --version | head -n 1

    Điều này mang lại cho máy của tôi (Debian 7)

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

    vim có thể được thực hiện để hành xử giống như vi. Điều này có thể được thực hiện bằng cách đưa ra lệnh vithay vì vimtừ dòng lệnh, trong đó vichỉ có một liên kết sym tới vim, trong trường hợp đó vim được mở trong chế độ vi. Bạn có thể kiểm tra điều này với :set compatible?.

  2. Như đã đề cập trong câu trả lời trước, hiệu ứng của khoảng lùi sẽ chỉ hiển thị sau khi rời khỏi insert modekhi set compatibleđược bật.

Lưu ý: Trong chế độ tương thích vi, bạn không thể xóa lùi văn bản đã được nhập trước đó (trước khi nhập insert mode) hoặc eol hoặc thụt vào insert mode. xem :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"

Hãy thử các cài đặt khác nhau để hiểu ý nghĩa của chúng: Nhập ký tự / ngắt dòng và thụt lề trong chế độ chèn, thoát và nhập lại chế độ chèn và sau đó thử khoảng cách.

Người dùng không quen thuộc với hành vi vi và không khăng khăng sử dụng vi thuần (dù sao cũng không được khuyến nghị) :set backspace=indent,eol,start. Afaik trên Debian thường có tệp cấu hình toàn hệ thống được cài đặt với cài đặt này.

Bạn có thể nhận được các thiết lập hiện tại thông qua :set bs?.


5

Tạo một tệp mới trong thư mục nhà của người dùng được gọi là .vimrc nếu nó chưa có ở đó. Ở đây chúng tôi sẽ tạo và chỉnh sửa cùng một lúc với vi

sudo vi ~/.vimrc

Thêm các lệnh sau, bao gồm tắt chế độ tương thích và chức năng xóa phím xóa lùi:

set nocp
set backspace=indent,eol,start

Lưu và thoát tệp bằng cách sử dụng

:wq

Tắt chế độ tương thích cho phép sử dụng các phím mũi tên mà chúng ta đã sử dụng.

Vì chúng tôi sudo'd khi tạo tệp, quyền sở hữu tệp có thể sẽ được root. Bạn có thể chown các tập tin cho người dùng.

Trong trường hợp của tôi, đây là một pi mâm xôi, vì vậy người dùng và nhóm là pi:

chown pi:pi ~/.vimrc

Bây giờ hãy khởi động lại vi và thưởng thức!


1
set nocpđã lừa tôi
Louis M


0

chỉ cần đặt trong của bạn ~/.zshrc

bindkey "^?" backward-delete-char
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.