Tạo phím nóng VIM


0

Tôi khá mới đối với VIM và linux nói chung. Vì vậy, làm điều này một mình là vượt quá mức kỹ năng của tôi bây giờ. Tôi quen thuộc với tệp vimrc nhưng đó là ...

Hãy nói rằng tôi có một thiết bị đầu cuối mở không hoạt động. Sau đó, tôi mở một thiết bị đầu cuối khác và chỉnh sửa tệp python (.py) bằng vim. Làm cách nào tôi có thể tạo một phím nóng vĩnh viễn (ví dụ như F1), sẽ hoạt động trên tất cả các chế độ VIM, sẽ lưu tệp python và thực thi nó trong cửa sổ đầu cuối khác?


le google: alisnic.github.io/posts/vim-run-hotkey - oh và chạy một cái gì đó trong thiết bị đầu cuối khác không phải là nhỏ, trừ khi bạn muốn bắt đầu một thiết bị đầu cuối mới. Tôi muốn nói là hãy quên nó đi ngay bây giờ ... Có lẽ ai đó sẽ có một gợi ý tốt hơn :) chào mừng bạn đến với SU!
Ярослав Рахматуллин

Câu trả lời:


1

Thực hiện một lệnh trong một thiết bị đầu cuối hiện có khác có thể được thực hiện, nhưng nó là xa tầm thường.

Đầu tiên, bạn có nhiều trình giả lập thiết bị đầu cuối mở. Những trình giả lập thiết bị đầu cuối đang chạy shell, có thể bash nếu bạn đang dùng Linux. Với ps lệnh bạn có thể tìm thấy id quá trình (PID) của tất cả các shell đang chạy trên máy của bạn. Câu hỏi lớn bây giờ là; cái nào để gửi lệnh đến?

Bạn đang tìm kiếm một shell thuộc về terminal mà bạn muốn hiển thị lệnh trên. Chạy lệnh echo $$ trên thiết bị đầu cuối đang được đề cập sẽ trả về PID của shell đang chạy trên thiết bị đầu cuối đó. Sử dụng /proc hệ thống tập tin bạn có thể xác định đầu vào tiêu chuẩn của shell /proc/<PID>/fd/0, mà là một pty thiết bị.

Tiếp theo bạn muốn gửi một lệnh đến thiết bị đầu cuối đó. Điều này phải được thực hiện bằng cách sử dụng TIOCSTI ioctl lệnh trên pty của shell. Bạn có thể tìm mã nguồn C để làm điều đó đây . Biên dịch chương trình đó như ví dụ: ttyecho và đặt nó trong một thư mục trong $ PATH của bạn.

Bây giờ các mảnh đã được đặt, và bạn có thể gọi ttyecho lệnh với tên của pty shell và lệnh python <filename>.

Làm tất cả điều này trong vimscript được để lại như một bài tập cho người đọc. :-)


-1

Bạn có thể thử một cái gì đó như thế này (cùng một thiết bị đầu cuối):

map <F2>:w<CR>!C:\Python27\python.exe %<CR><CR>

appleLover đã đề cập anh ấy trên Linux
taketwo

Đó không phải là một lý do để bỏ phiếu trả lời. Lệnh Vim giống hệt nhau trong môi trường unix ngoài đường dẫn nhị phân. Tôi là tất cả cho nghề giáo, nhưng bạn ơi hãy lấy bánh :)
Ярослав Рахматуллин

Tôi không thấy quan điểm đưa ra câu trả lời sẽ chắc chắn không hoạt động cho người hỏi, trừ khi anh ta sửa đổi thích hợp. Điều đó có thể tốt cho mục đích giáo dục nhưng ... chúng tôi không ở trong lớp học.
taketwo
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.