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


70

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.

Câu trả lời:


39

Đó là hành vi đúng cho vi và nó xóa nhân vật, nó chỉ không thể hiện bằng cách thay thế nó bằng một khoảng trống như trong vim. Sẽ rõ ràng hơn khi bạn ghi đè ký tự bị xóa bằng ký tự khác hoặc chuyển về chế độ lệnh.

Ví dụ: bắt đầu với chế độ lệnh trên một dòng trống, sau đây sẽ dẫn đến dòng chứa fo:

ifooBackspaceEsc

Trước khi bạn nhấn Escphím, dòng sẽ đọc foo, nhưng dòng cuối cùng ođã được gắn thẻ dưới dạng "cột xóa". Xem http://pub.opengroup.org/onlinepub/9699919799/utilities/vi.html#tag_20_152_13_88 (chủ yếu là điểm 4 dưới tiêu đề đó và cũng duyệt thêm một chút để đọc về <Control> -H)


73

Đây là giải pháp đơn giản nhất.
Mở một thiết bị đầu cuối, đi đến thư mục nhà và gõ

vi .vimrc

một tệp mới mở bây giờ thêm các dòng này vào tệp và thoát bằng cách lưu

$ set nocompatible
$ set backspace=2

9
OP đã đề cập rằng họ không muốn sử dụngnocompatibility
kiri

1
không cần không có khả năng tương thích, bạn cũng có thể làm điều đó chỉ bằng cách thêm dòng thứ hai
Adithya Chakilam

1
Dòng thứ hai chỉ hoạt động với tôi nếu tôi cũng thêm dòng đầu tiên.
djjeck

Bắt đầu từ một .vimrc trống và tự hỏi tại sao backspace không hoạt động trên mac trong iTerm2. Cảm ơn rất nhiều!
Igor Malyk

@ minerz029 thêm nhưng đây là câu trả lời hầu hết mọi người ở đây vì không có tiêu chuẩn như vậy trong tiêu đề trang.
Muhd

23

Bạn cần thay đổi sang chế độ "chèn" bằng cách di chuyển con trỏ bằng i. Có nhiều cách khác để xóa ký tự trực tiếp. Bạn có thể tải xuống một powerpoint mà tôi sử dụng khi dạy một lớp về VI tại đây .

Có vẻ như bạn đang ở chế độ "Lệnh". Để di chuyển con trỏ của bạn:
H= Trái, J= Lên, K= Xuống, L= Phải

Khi bạn đã định vị con trỏ, bạn có thể xóa văn bản như sau:
x Xóa ký tự bên dưới con trỏ
X Xóa ký tự trước khi con trỏ
dwXóa từ con trỏ sang từ tiếp theo
dd Xóa dòng con trỏ đang bật.

Để nhập văn bản , bạn có thể sử dụng một trong các chế độ nhập văn bản.
aThêm văn bản vào đúng của con trỏ
Athêm văn bản vào cuối của dòng hiện
ithêm văn bản vào bên trái của con trỏ
Ithêm thử nghiệm để các beginin của dòng hiện tại
oMở một dòng mới bên dưới dòng hiện tại và những nơi bạn nhập văn bản chế độ
OMở một dòng mới Trên dòng hiện tại và đặt bạn trong chế độ nhập văn bản

Để thoát chế độ Nhập văn bản và trở về chế độ Lệnh, hãy sử dụng Esc.

Để hoàn tác các thay đổi: (Yêu thích của sinh viên)
uHoàn tác lệnh cuối cùng đã nhập
UHoàn tác tất cả các thay đổi đối với ** dòng hiện tại **

Để lưu / Thoát: :wGhi (Lưu) tệp và vẫn mở
:wqGhi (Lưu) tệp và thoát VI
:qThoát (Thoát) nếu bạn không thực hiện thay đổi
:q! Thoát (Thoát) mà không lưu thay đổi
ZZGhi (Lưu) tệp và thoát VI (giống như :wq)


11
OP đã đề cập rằng hành vi bí ẩn xảy ra trong chế độ chèn . Vì vậy, đây không phải là câu trả lời cho câu hỏi.
LarsH

Trên thực tế, OP không trạng thái chèn . Câu hỏi đã được chỉnh sửa.
Luận điểm

1
Đồng ý. Bạn hoàn toàn đúng. Có vẻ như tôi đã đưa ra một giả định. Theo kinh nghiệm của tôi, hầu hết mọi người mới sử dụng VI đều gặp vấn đề với các chế độ chuyển đổi và điều hướng khi ở chế độ lệnh. Học sinh của tôi thường phàn nàn và đổ lỗi cho VI có hành vi thất thường khi đó đơn giản là lỗi người dùng hoặc không nắm bắt được bộ lệnh.
Luận điểm

1
Có thể hiểu được. Tôi đồng ý rằng đó là phản ứng phổ biến đối với chế độ không chèn.
LarsH

Argus, "trong chế độ chèn" đã được thêm vào tiêu đề câu hỏi trong một chỉnh sửa, nhưng nó nằm trong phần thân của câu hỏi ngay từ đầu.
LarsH

13

Cài đặt gói vim đầy đủ để có được chức năng phím lùi và phím mũi tên

sudo apt-get update
sudo apt-get install vim

Nó hoạt động như mong đợi .. Câu trả lời hay nhất
Vicky

Đó là câu trả lời hoàn hảo. Không cần chỉnh sửa bất kỳ tập tin cấu hình nào, chỉ cần cài đặt vim-runtimegói và mọi thứ hoạt động như tôi đã quen. Cảm ơn!
Olli D-Metz
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.