vim tùy chỉnh với các lệnh emacs (chỉ chế độ chèn)


10

Tôi là một emacsngười dùng và tôi phải chuyển sang vim. Nhưng tôi bỏ lỡ một số lệnh emacs cơ bản trong vimchế độ chèn:

  1. C-A
  2. C-E
  3. C-K
  4. C-Y
  5. C-x C-s
  6. ... và một số khác

Tôi biết rằng tôi có thể nhấn Escapevà sau đó nhấn một số phím sau và cuối cùng nhấn phím i:

  1. ^
  2. $
  3. d$
  4. p
  5. :w [Đi vào]
  6. ...

Tuy nhiên tôi sẽ thích ở vimchế độ chèn và tránh nhấn Escape/ iphím.

Trên trang web, tôi đã tìm thấy các tùy chỉnh cho emacs( vi-mode, vip, viper, vimpulse, vim-mode, evil). Nhưng vẫn chưa tìm thấy điều ngược lại: tùy chỉnh vimđể sử dụng emacscác lệnh ...

Tôi quan tâm đến các emacslệnh trong vim chế độ chèn chỉ. Chỉ cần một số lệnh cơ bản, như bashlệnh: C-A, C-E, C-K, C-Y, C-U... (vâng C-Ukhông phải là một mặc định emacslệnh nhưng tôi thích nó quá).

Câu trả lời:


7

Tôi trả lời câu hỏi này bốn năm sau vì câu trả lời được cung cấp là một giải pháp một phần không hoàn toàn giải quyết câu hỏi ban đầu.

Tôi có cùng một mong muốn như olibre, và muốn đưa ra một giải pháp hoàn chỉnh. Tôi đến với nó từ một góc nhìn khác - tôi đã quen với việc chỉnh sửa dòng Emacs trong bash - nhưng vấn đề là như nhau. Tôi muốn mang nó qua chế độ chèn Vim (chỉ).

Các địa chỉ sau đây giải quyết tất cả các yêu cầu liên kết phím trong câu hỏi ban đầu được đặt ra bởi olibre, cộng với một vài bổ sung:

" Mimic Emacs Line Editing in Insert Mode Only
inoremap <C-A> <Home>
inoremap <C-B> <Left>
inoremap <C-E> <End>
inoremap <C-F> <Right>
" â is <Alt-B>
inoremap â <C-Left>
" æ is <Alt-F>
inoremap æ <C-Right>
inoremap <C-K> <Esc>lDa
inoremap <C-U> <Esc>d0xi
inoremap <C-Y> <Esc>Pa
inoremap <C-X><C-S> <Esc>:w<CR>a

Các ràng buộc duy nhất tôi dường như không thể để có được công việc vào thời điểm này là <Alt-B><Alt-F>, trong đó sẽ bỏ qua toàn bộ từ. Bất cứ khi nào tôi liên kết <Esc>, <Alt>hoặc <Meta>kết hợp, gVim (v7.4 trên Windows) sẽ xuất ra các ký tự có dấu. Xin vui lòng chỉnh sửa câu trả lời này nếu bạn có một giải pháp cho vấn đề này. Tôi đã nhận được các kết hợp Alt để hoạt động dựa trên đề xuất của bài đăng khác để chỉ sử dụng các ký tự đặc biệt. Tôi đã chèn chúng ở trên.

Biên tập

- (chỉnh sửa không phải bởi poster câu trả lời gốc) -

Tôi đã sử dụng các mục sau trong Neovim và Windows 10. Bạn có thể cần thay đổi "A" thành "M" trên các HĐH khác vì "alt" có thể là "meta" ở nơi khác. Tôi đã không chơi với nó đủ.

inoremap <A-x> <Esc>:
inoremap <A-f> <Esc>lwi
inoremap <A-b> <Esc>bi
inoremap <A-S-f> <Esc>lWi
inoremap <A-S-b> <Esc>Bi

Chỉ là một gợi ý nhỏ: Tôi nghĩ <Esc>pasẽ tốt hơn cho<C-Y>
Yamaneko

Có vẻ như <C-K>không hoạt động khi con trỏ ở ngoài cùng bên trái - nó sẽ xóa toàn bộ dòng nhưng Esc>lDasẽ để lại ký tự đầu tiên không bị xóa.
Ying Xiong

7

Bạn có thể ánh xạ bất kỳ lệnh nào trong chế độ chèn vào bất cứ thứ gì bằng cách sử dụng :imaplệnh hoặc lưu gõ bằng cách sử dụng :im. Đối với ánh xạ đầu tiên của bạn, bạn có thể nhập (ở chế độ bình thường):

:im <C-A> <esc>^i

Chuyển sang chế độ bình thường (có thoát), nhấn ^cho bạn và quay lại chế độ chèn. Xem trợ giúp để biết thêm:

:help :imap hoặc ngắn hơn: :h :im

Xin lưu ý rằng bạn có thể ghi đè lên ánh xạ khóa hiện có. Đặt các lệnh vào .vimrctệp cấu hình của bạn nếu bạn muốn chúng ở đó cho mọi tài liệu.


cảm ơn vì lời khuyên của bạn +1 :-) Nhưng bạn có biết loại ánh xạ này đã được cấu hình chưa? (ví dụ: không có ánh xạ khóa hiện có ghi đè). Nơi để tìm dự án / cấu hình như vậy? Tôi thích sử dụng lại một cái gì đó đã được thực hiện (và mạnh mẽ), hơn là cố gắng tự làm nó (và thiếu một cái gì đó quan trọng). Chúc mừng
olibre

Tôi có nên hỏi / chuyển câu hỏi của mình sang superuser.com không?
olibre

Cảm ơn! Bạn có thể xem liệu một lệnh có tồn tại với lệnh (logic) hay không :im <c-a>. Nếu thông báo 'Không tìm thấy ánh xạ', bạn sẽ không ghi đè bất kỳ. Tôi không nghĩ rằng nó sẽ trở nên mạnh mẽ hơn thế nhiều ...
Joker

Humm ... Tôi phải mã hóa, kiểm tra cấu hình của mình, sau đó sửa lỗi và một lần nữa .... Nhưng tôi không biết tất cả các vimlệnh ... Xin vui lòng, bạn có biết nơi tôi có thể tìm thấy danh sách các :imđối số cuối cùng không? FYI, tôi cũng đã quen với những điều sau bashlệnh: M-backspace, M-F, M-B, M-D... Nó sẽ được tốt đẹp nếu ai đó đã làm điều đó và chia sẻ công việc của mình, phải không? (đại loại như evil) Vì vậy, tôi có thể sử dụng lại :imánh xạ khóa của anh ấy mà không phải tự làm điều đó (dễ bị lỗi). Bạn có biêt tôi đang nghĩ gì?
olibre

Tôi có thể không hiểu chính xác ý của bạn, nhưng bạn có thể tìm thấy tất cả các ánh xạ khóa không chuẩn bằng cách nhập :im. Để đưa ra nhận xét cấp cao hơn: nếu bạn muốn có thể sử dụng Vim trên nhiều nền tảng / máy tính mà không phải tải plugin, chế độ đặc biệt hoặc tệp vimrc của riêng bạn, tôi nghĩ điều tốt nhất nên làm là tìm hiểu / sử dụng các lệnh Vim tiêu chuẩn càng nhiều càng tốt. Tôi đã tự tạo ra một số ánh xạ chính, nhưng luôn cố gắng tìm Vim thay thế tiêu chuẩn. Và nó có thể khá nhanh chóng. Một điều tôi đã làm là ánh xạ <esc>tới ;j, làm cho ánh xạ nr 1 của bạn dễ dàng như ;jIvà nr 2 ;jA.
Joker

6

Không phải là một câu trả lời hoàn chỉnh, nhưng bạn có biết về cái gọi là " chế độ dễ dàng " ( vim -y) của Vim không? Nó luôn ở chế độ chỉnh sửa bởi defaut và thực hiện khá nhiều thứ bạn muốn và không cần bạn phải cài đặt hay tùy chỉnh bất cứ thứ gì. Nó không CTRL-A, C, V, X, Y, vv Từ danh sách khóa :

Key mappings:
    <Down>      moves by screen lines rather than file lines
    <Up>        idem
    Q           does "gq", formatting, instead of Ex mode
    <BS>        in Visual mode: deletes the selection
    CTRL-X      in Visual mode: Cut to clipboard
    <S-Del>     idem
    CTRL-C      in Visual mode: Copy to clipboard
    <C-Insert>  idem
    CTRL-V      Pastes from the clipboard (in any mode)
    <S-Insert>  idem
    CTRL-Q      do what CTRL-V used to do
    CTRL-Z      undo
    CTRL-Y      redo
    <M-Space>   system menu
    CTRL-A      select all
    <C-Tab>     next window, CTRL-W w
    <C-F4>      close window, CTRL-W c

Một phiên bản mạnh mẽ hơn nhiều của điều này là Cream , giúp lặp lại nhiều phím hơn và làm cho các lệnh cơ bản tương tự như các trình soạn thảo khác mà bạn có thể quen thuộc.

Ngoài ra còn có plugin Vimacs , cho phép tất cả các ánh xạ khóa emacs phổ biến. Thật dễ dàng để cài đặt và có thể làm những gì bạn muốn (Tôi chưa bao giờ thử nó).


Rất thú vị +1 :-) Tôi đọc / kiểm tra tất cả các liên kết của bạn ... Tôi sẽ cung cấp cho bạn thêm thông tin phản hồi sau. Cảm ơn bạn. Chúc mừng
olibre

1
Các phím của «chế độ dễ» không liên quan gì đến các phím Emacs. Nhưng «vimacs» có vẻ là một điều thú vị. Tôi mới cài đặt, và mặc dù đã cũ nhưng nó vẫn hoạt động.
Hi-Angel
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.