2009-05-01 42 views
85

Các phím mũi tên của tôi không hoạt động ở vi ở chế độ chèn ở nhà, chúng chỉ chèn một dòng mới và một chữ cái viết hoa, như 'A'. Có cách nào để khắc phục điều đó không?Các phím mũi tên vi vi trong chế độ chèn

+0

hệ điều hành? – Miquel

+3

Tôi có nghĩa là phân phối Linux? – Miquel

+0

Họ có làm việc xa nhà không? :-) –

Trả lời

97

Tôi đoán bạn đang sử dụng vim vì thẻ này được gắn thẻ là Linux. Hãy thử:

:set nocompatible 

(Bạn có thể muốn cấu hình vimrc của bạn với điều này bằng cách thêm lệnh này để nó Tạo một file vimrc mới nếu chưa có mặt trong thư mục chính của bạn, hãy chạy echo $HOME để kiểm tra đường dẫn thư mục nhà..)

+7

Hãy chắc chắn rằng bạn bắt đầu vi với lệnh 'vim' và không phải là' vi'. Hầu hết các tính năng nâng cao và hữu ích của 'vim' được tắt theo mặc định trừ khi bạn bắt đầu với' vim'. – pts

+1

@pts - chỉ trên các hệ thống bị hỏng. Bắt đầu vim như vi trên tất cả các hộp của tôi hoạt động tốt; tuy nhiên, có một số hộp CentOS mà tôi đã sử dụng để minh họa hành vi mà bạn đang nói đến. –

+0

Ai đó có thể sửa câu trả lời này để bao gồm những gì nó sẽ trông giống như trong một vimrc? – Stephan

16

vi không hỗ trợ các phím mũi tên ở chế độ chèn. Sử dụng vim. Mặc dù vi của bạn có thể chỉ là một liên kết đến vim, nó có thể được cấu hình để hoạt động như vi "gốc" và do đó vô hiệu hóa các phím mũi tên. Chỉ cần gọi vim trực tiếp.

+0

Mặc dù đây không phải là giải pháp, đây là giải thích tốt nhất cho hành vi (imo), làm rõ sự khác biệt giữa 'vi' và' vim'. Nhưng trên hộp của tôi 'vim' in' lệnh không tìm thấy': D – DanFromGermany

+0

@DanFromGermany Có lẽ bạn chỉ có một vi cài đặt và không vim. Hãy thử cài đặt vim qua trình quản lý gói của hệ thống Linux nếu bạn muốn sử dụng nó. – lothar

+0

': đặt cụm từ = ansi' làm việc cho tôi nhờ [Raz] (https://stackoverflow.com/a/15228199/611007). bạn nói nó 'không hỗ trợ'. Tôi tự hỏi bạn có nói rằng vì gói 'vim-tiny' của ubuntu -I're đang sử dụng- khác với vani' vi' hay thuật ngữ thiết lập công việc trong đó? – n611x007

65

Tàu Ubuntu mặc định với vim-tiny, không có tất cả chuông và còi mà vim có.

Thực hiện nhanh sudo apt-get install vim để có được tất cả các tính năng ngon ngọt mà mọi người đang nói đến.

+0

Đây chính xác là những gì tôi cần trong linux mint. Bằng cách cài đặt vim i vẫn có thể bắt đầu sử dụng "vi" và tất cả các mã nổi bật bây giờ đã được kích hoạt. Thật là một phần kiến ​​thức tuyệt vời về Linux :) – wired00

+0

Điều này giải quyết vấn đề trên Debian! –

+0

Điều này làm việc cho Raspberry Pi của tôi (Jessie Lite). Tôi đã gặp vấn đề này khi tôi sẽ an toàn vỏ vào nó, nhưng bây giờ nó được giải quyết hoàn toàn :-) – JakeD

0

Bạn cũng có thể muốn thử 'noesckeys'

1

Tôi chỉ có một vấn đề với các phím mũi tên sau khi chuyển đổi sang sử dụng git trong vim.

Tôi đã cài đặt repo này - https://github.com/sunaku/.vim

và sau khi đào bới xung quanh cho một giờ, tôi thấy rằng Tự động đóng Plugin (mà không thích anyway) đã phá vỡ các phím mũi tên.

Tài liệu plugin đề xuất rằng một tài liệu nên đặt bộ ttimeoutlen = 100, nhưng không phù hợp với tôi! (sử dụng màn hình urxvt + hoặc urxvt và thậm chí là xterm)

Vì vậy, tôi đã xóa plugin ở cuối.

4

Điều duy nhất mà làm việc đối với tôi là ": set term = ansi"

+1

Điều này cũng có vẻ đã làm việc cho tôi bằng cách sử dụng một container Docker. – ohlando

+1

Điều này cũng làm việc cho tôi. Tôi đang sử dụng cmd.exe trong cửa sổ và sshing vào ubuntu bằng cách sử dụng vagrant –

+0

@ CodeCodeO-1-O-log-n vì vậy mà bên bạn đang sử dụng 'vi' trên các cửa sổ hoặc bên ubuntu? :) – n611x007

8

Tuy nhiên, một biến thể: Vấn đề này xuất hiện cho tôi sau khi một số thay đổi vimrc. Một tìm kiếm phối hợp cuối cùng đã tiết lộ rằng việc lập lại bản đồ thông minh của tôi về ESC trong chế độ bình thường không phải là một ý tưởng hay. Loại bỏ nó giải quyết vấn đề:

" this is NOT something you want in .vimrc: 
" In normal mode, hitting Esc turns off search highlights: 
nmap <ESC> :nohl<CR> " Do NOT add this to .vimrc 
+0

Tôi đã thử mọi thứ sau khi gặp sự cố này và đây là những gì tôi đang tìm kiếm, cảm ơn! –

+0

Cảm ơn bạn đã sửa chữa, tôi đã xem mọi nơi. Bất kỳ ý tưởng lý do tại sao remapping thoát gây ra vấn đề? – nonphoto

-1

Trong dòng lệnh viết này:

EXINIT="set nocompatible"; export EXINIT 
+1

xin vui lòng thêm một số (ngắn) mô tả các giải pháp của bạn – Raidri

25

:set term=builtin_ansi

cố định nó cho tôi. Bạn có thể dán vào vim khi đang ở chế độ thoát, (chế độ bleep) hoặc thêm nó vào cuối ~/.vimrc mà không có hàng đầu ":"

+0

điều này làm việc cho tôi. –

+0

: đặt thuật ngữ = xterm cũng có thể hoạt động, (và dễ nhớ hơn). –

+0

FYI ': set term = builtin_ansi' làm việc cho tôi. ': set term = xterm' thì không. – FractalSpace

0

Tôi gặp vấn đề tương tự khi sử dụng vim bên trong Windows 8.1 với Cygwin .

Giải pháp làm việc đối với tôi là, chỉ cần chạy lệnh sau trong terminal Cygwin của bạn:

cp vimrc_example.vim ~/.vimrc 
0

tôi đã cùng một vấn đề với các phím mũi tên, nhưng khi tôi sử dụng đã làm điều đó bộ nocp hoặc nocompatible sau đó xóa lùi của tôi didn' t làm việc một cách chính xác

vì một lý do khi tôi cài đặt vim với sudo apt-get install vim, vi không có bất kỳ vấn đề với các mũi tên hoặc backspace nữa

Các vấn đề liên quan