Chuyển VI để sử dụng phím backspace thay vì Control + H cho backspace?


7

Tôi đang dùng Solaris 10 và theo viphiên bản mặc định SVR4.0, Solaris 2.5.0 đã được cài đặt.

Hệ thống đã được thiết lập sao cho khi tôi ssh tới nó Control+Hthì backspace và backspace output^?

Tôi đã thêm stty erase '^?'vào .profileđể trong thiết bị đầu cuối, phím backspace hoạt động chính xác. Tuy nhiên khi tôi sử dụng vi thì nó vẫn xuất ra ^?ký tự.

Thông thường tôi sẽ gõ :set nocompatibleđể sửa lỗi này nhưng nó mang lại cho tôi

compatible: No such option - 'set all' gives all option values

set all đưa cho tôi

noautoindent            nomodelines                     noshowmode
autoprint               nonumber                        noslowopen
noautowrite             nonovice                        tabstop=8
nobeautify              nooptimize                      taglength=0
directory=/var/tmp      paragraphs=IPLPPPQPP LIpplpipnpptags=tags /usr/lib/tags
noedcompatible          prompt                          tagstack
noerrorbells            noreadonly                      term=xterm
noexrc                  redraw                          noterse
flash                   remap                           timeout
hardtabs=8              report=5                        ttytype=xterm
noignorecase            scroll=33                       warn
nolisp                  sections=NHSHH HUuhsh+c         window=66
nolist                  shell=/bin/ksh                  wrapscan
magic                   shiftwidth=8                    wrapmargin=0
mesg                    noshowmatch                     nowriteany

Tôi đoán rằng phiên bản vinày quá cũ và tôi cần một phiên bản mới hơn hoặc vimnếu tôi muốn sử dụng set nocompatible, nhưng tôi tự hỏi có cách nào khác viđể sử dụng backspace cho backspaces mà không phải tải vim không?


kiểm tra cài đặt thiết bị đầu cuối của bạn. vi sẽ sử dụng loại TERM của bạn và sử dụng cơ sở dữ liệu termcap để xác định khả năng mặc định của thiết bị đầu cuối của bạn là gì. Nếu bạn đang sử dụng putty, bạn có thể thay đổi chỉnh sửa cấu hình ssh cho máy chủ đó và đặt nó để gửi Control-? cho backspace, thay vì Control-H.
Tim Kennedy

cố gắng dtterm, xtermc, vt320và tất cả những người khác tôi có thể tìm thấy. terminfocó một trang man nhưng lệnh không được tìm thấy. backspace hoạt động tốt tại dấu nhắc lệnh, chỉ không trongvi
cwd

hãy thử thiết lập :map! ^? ^Htrong tệp .exrc của bạn. lưu ý rằng ^?không chỉ đơn giản là một ^ (shift + 6) và một dấu hỏi, đó là ký tự được tạo bằng cách nhấn control + v control + shift + backspace và ^ H được tạo bằng cách nhấn control + v control + h .
Tim Kennedy

đã làm điều đó, cảm ơn! muốn đăng bài này dưới đây? Thật không may, các phím mũi tên vẫn tạo ra ACDB.
cwd

được đăng dưới đây, với các mục để ánh xạ các phím mũi tên như một phần thưởng. :)
Tim Kennedy

Câu trả lời:


6

đồng ý. Vì vậy, chúng tôi đã giải quyết phím backspace không hoạt động.

bằng cách thêm

:map! ^? ^H

vào tập tin .exrc của bạn. để ánh xạ các phím mũi tên theo cách tương tự, bạn có thể thêm các mục sau vào cùng một tệp .exrc.

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

Hãy nhớ rằng tất cả các 'mã thoát' này được tạo ra không chỉ bằng cách nhập shift+ 6cho ký tự '^', mà bằng cách nhấn các phím sau:

xóa lùi & xóa:

  • ^? = control + v+delete
  • ^ H = control + v+control + h

mũi tên lên:

  • ^ [OA = control + v+up arrow
  • ^ [ka = control + v+ esc+ k+a

mũi tên xuống:

  • ^ [OB = control + v+down arrow
  • ^ [ja = control + v+ esc+ j+a

mũi tên bên phải:

  • ^ [OC = control + v+right arrow
  • ^ [la = control + v+ esc+ l+a

mũi tên trái:

  • ^ [OD = control + v+left arrow
  • ^ [ha = control + v+ esc+ h+a

Bất kỳ dòng nhận xét nào trong tệp .exrc của bạn phải được đánh dấu bằng ", chứ không phải #. Và bạn không thể để bất kỳ dòng trống nào trong tệp .exrc của mình, nếu không thì dòng trống đầu tiên đó là nơi .exrc của bạn sẽ ngừng được xử lý.

Một khi những thứ này được đặt đúng chỗ, vi sẽ bắt đầu cảm thấy giống như nó được thiết kế để con người sử dụng. :)

để biết ví dụ về tệp .exrc mạnh như thế nào, hãy xem ví dụ .exrc này của Dave Capella.

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.