2010-10-14 30 views
10

Cách dễ nhất để có cùng một kiểu hành vi như thế nào trong vim cho chuyển hướng từ lui tới? Trong khi bạn nhấn "w", nó sẽ di chuyển con trỏ tiến lên một từ, trong đó từ bao gồm một chuỗi các chữ cái, chữ số và dấu gạch dưới, hoặc một chuỗi các ký tự không trống khác, được phân tách bằng khoảng trắng (dấu cách, tab, eol) . Ngược lại, trong các emacs, nó bỏ qua cho đến cuối từ tiếp theo và từ được định nghĩa cho mỗi chế độ trong bảng cú pháp.Sửa đổi các emacs hành vi chuyển tiếp/từ-lạc hậu (giống như trong vi/vim)

Ví dụ: có một con trỏ vào đầu dòng show nơi vim đặt một con trỏ khi bạn làm forward-word ("w") hoạt động như sau:

opt1.arg = opt2.arg 
^ ^^ ^^ ^^^

Trong emacs nó giống như:

opt1.arg = opt2.arg 
^ ^^ ^^

Nó thực sự phụ thuộc vào sở thích của một người, nhưng tôi có xu hướng thích phong cách vim tốt hơn và tôi đã tự hỏi cách dễ nhất để có cùng trong emacs là gì. Tôi đoán tôi không chỉ có những người chuyển từ vim để emacs vì vậy có lẽ ai đó đã có một giải pháp, lý tưởng cho kill-wordbackward-kill-word cũng :)

Tôi biết bạn có thể nhận được một cái gì đó tương tự bởi sự kết hợp của M-f, M-b, vv , nhưng đó không phải là vấn đề. Tôi cũng không muốn bắt đầu một cuộc thảo luận mà cách tiếp cận là tốt hơn - topis cũng được thảo luận trong here.

Trả lời

1

Chủ yếu là một bản sao của this, mà nói:

(require 'misc) 

Sau đó ràng buộc bất cứ điều gì bạn muốn phím forward-to-wordbackward-to-word. Để giết chóc, hãy tạo ra một số chức năng đơn giản bao bọc các chức năng này và giết.

+1

Tôi đã xem bài đăng khác trước đây, nhưng như bạn thấy tôi đã yêu cầu một điều khác (liên quan đến cùng một chủ đề), vì vậy câu trả lời của bạn không giúp ích gì cho điều này. – fikovnik

+0

Chỉ định 'chuyển tiếp-sang-từ' sang' C-right' hoạt động tốt, ngoại trừ 'CS-right' không còn chọn văn bản :-( – Malvineous

6

Bạn thực sự có thể sử dụng 'viper-forward-word

(require 'viper) 
(global-set-key (kbd "M-f") 'viper-forward-word) 
(global-set-key (kbd "M-b") 'viper-backward-word) 
+0

Vì một lý do nào đó, tôi phải sử dụng phiên bản chữ hoa để làm việc này: (yêu cầu 'viper) (khóa toàn cầu (kbd "Mf")' viper-forward-Word) (khóa toàn cục (kbd "Mb") 'viper-backward-Word) – Glen

+1

(yêu cầu' viper) đã không làm việc cho tôi, tôi cần thiết (yêu cầu 'viper-cmd), đó là kỳ lạ bởi vì viper.el yêu cầu viper-cmd Tôi đang sử dụng 24.2.1 – jpkotta

+0

Đã có vấn đề tương tự như jpkotta.Sử dụng (yêu cầu 'viper-cmd). Im trên emacs 24.3.1 – mawaldne

0

Tôi không biết tại sao câu trả lời jpkotta của đã bị xóa, nhưng ở đây nó là một lần nữa:

Tôi có một chế độ nhỏ mà thay đổi lệnh soạn thảo văn bản dựa để vận hành các thay đổi cú pháp (và cả CamelCaseSubwords). Nó có thể là một chút quá hạt cho một số thị hiếu, nhưng tôi thấy tôi về cơ bản bao giờ sử dụng chuyển động nhân vật duy nhất nữa.

https://bitbucket.org/jpkotta/syntax-subword

@ mods, tôi không biết tại sao câu trả lời này sẽ bị xóa, vì vậy nếu bạn chọn để xóa câu trả lời này quá, tôi đánh giá cao một lời giải thích.

+0

nó không bị xóa nó nằm dưới một câu hỏi khác http://stackoverflow.com/a/13569228/2318073 – Ameen

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