Sao chép từ vim vào bảng điều khiển python trong tmux


8

Tôi đã cài đặt tmux.

tmux -V
tmux 2.3

Đặt tập tin cấu hình của tôi.

cat  ~/.tmux.conf
set -g mouse on

Nhập tmux và mở hai cửa sổ dọc trong đó, mở bảng điều khiển python3 ở bên trái, mở vim ở bên phải.

nhập mô tả hình ảnh ở đây

Bây giờ di chuyển con trỏ của tôi ở đầu dòng đầu tiên bên phải bằng chuột.
Nhập vào chế độ bình thường và đầu vào 2yy+, để sao chép hai dòng trong +sổ đăng ký của tôi .
Di chuyển con trỏ ở python3 consolecửa sổ bên trái , làm thế nào tôi có thể dán nội dung trong +thanh ghi vào bảng điều khiển python? @ Kent, làm như bạn nói:
1. Di chuyển con trỏ ở đầu dòng đầu tiên và gõ 2. "+2Y
Di chuyển con trỏ sang cửa sổ bên trái và nhấp chuột giữa, không có gì xảy ra. 3. ctrl+bnhấn rồi nhấn ]phím.

nhập mô tả hình ảnh ở đây


plugin vim-tmux-clipboard có thể giúp đỡ.
Amadan

Câu trả lời:


3

đầu tiên vim của bạn nên được biên dịch với +clipboardxemvim --version | grep 'clipboard'

Để sao chép (hoặc xóa) trong bất kỳ đăng ký vim nào, bạn có thể sử dụng cú pháp sau

  • "<register name><oprator><motion>(xem :h registers) vd
    1. "ayy(sao chép dòng hiện tại trong đăng ký a) hoặc
    2. "bdd(xóa dòng hiện tại trong đăng ký b) hoặc
    3. "*ce(xóa đến hết công việc hiện tại và đặt nội dung trong thanh ghi *bằng cách sử dụng ccũng sẽ đưa bạn vào chế độ chèn
  • để sao chép toàn bộ dòng bạn có thể sử dụng yy
  • và hệ thống tạm được ánh xạ tới một trong hai +hoặc *(tùy thuộc vào os)

vì vậy để sao chép toàn bộ dòng vào clipboard hệ thống, bạn có thể sử dụng

  • "*yyhoặc "+yy(tùy thuộc vào hệ điều hành)

hoặc sao chép 2 dòng

  • "*2yyhoặc "+2yy(để sao chép dòng hiện tại và dòng sau dòng hiện tại)

khi nội dung được sao chép trong bảng tạm hệ thống, bạn có thể dán vào tmux bằng cách sử dụng ( command + vhoặc ctrl + shift + v)

hoặc để ánh xạ bảng tạm hệ thống với bộ đệm dán tmux, hãy xem /unix/67673/copy-paste-text-selections-b between-tux-and-the-clipboard # 72340


1

2yy+làm kHÔNG sao chép hai dòng vào +reg, thay vào đó, nó yanks hai dòng để "reg, sau đó di chuyển con trỏ đến đầu tiên char không trống trong dòng tiếp theo

Bạn có thể về phía vim làm: "*2Y sau đó nhấp chuột vào bảng điều khiển python.

  • hoặc chỉ cần chọn các dòng bạn muốn sao chép trong vim bằng chuột, sau đó nhấp vào giữa trong bảng điều khiển python

Tôi có thể nhấn mid-clic trên gedit để dán các dòng trong đó, không biết tại sao không thể dán nó vào cửa sổ bên trái.
coder_view

Tôi có nên viết một số cấu hình trong ~ / .tmux.conf không?
coder_view

1

Tôi không hoàn toàn thích giải pháp được chấp nhận rằng nó phụ thuộc vào môi trường đồ họa cho bảng tạm vì điều này không hoạt động khi vimkhông thể truy cập vào bảng tạm, điều này hầu như luôn luôn đúng vớissh kết nối. Vì vậy, tôi cam kết với một giải pháp khác:

Thay vì sử dụng bảng tạm bên ngoài, vimcó thể chuyển văn bản trực tiếp vào tmux'bộ đệm dán bằng cách chuyển nó vào

tmux load-buffer -

Sau đó, bạn có thể dán nội dung của bộ đệm prefix + ]vào tmuxkhung hoạt động .

Có nhiều cách khác nhau để chuyển văn bản từ vimsang tmux:

# to write the current line into the tmux buffer:
:.w !tmux load-buffer -

# to write all *lines* within the visual selection into the tmux buffer:
:'<,'>w !tmux load-buffer -

# to pipe the content of a register (e.g. from a previous selection) into the buffer:
# @" being the unnamed register, @0 - @9 the numbered registers, and so on
:call system('tmux load-buffer -', @")

Sử dụng, tmux paste-bufferbạn thậm chí có thể kích hoạt dán vào khung chính xác cùng một lúc:

# assuming the python pane is at :0.0
:call system('tmux load-buffer -; tmux paste-buffer -t :0.0', @")

Bây giờ bạn cũng có thể dễ dàng ánh xạ dòng cuối cùng vào một phím để gửi văn bản được chọn trực quan đến pythonkhung.

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.