Viết vùng đã chọn vào tập tin


11

Tôi muốn viết một khu vực được lựa chọn trực quan vào một tập tin.

Ví dụ:

prefix [sample text
more text] suffix

[] là khối được chọn sẽ được thực hiện, dẫn đến một tệp mới có chứa:

sample text
more text

Lệnh bình thường wsử dụng các dòng vì vậy '<,'>w! /tmp/testsẽ bao gồm tiền tố / hậu tố (và `<,`>w! /tmp/testkhông được phép).

Câu trả lời:


8

Đầu tiên, sao chép (còn được gọi là 'yank' theo cách nói vim) lựa chọn trực quan của bạn vào sổ đăng ký bạn chọn. Ví dụ: để sao chép để đăng ký 'z', hãy chọn lựa trực quan và sau đó nhập "zy.

Trong trường hợp bạn đưa ra, bạn có thể làm điều này mà không cần di chuyển con trỏ, bằng cách đặt con trỏ trên dấu ngoặc vuông đầu tiên, sau đó gõ v%"zy.

Phân tích: v-> bắt đầu lựa chọn trực quan; %-> di chuyển đến nẹp phù hợp; "z-> sử dụng đăng ký 'z'; y-> yank (sao chép) lựa chọn (trong trường hợp này, vào đăng ký 'z').

Khi bạn đã sao chép lựa chọn trực quan của mình để đăng ký 'z', hãy chuyển đến dòng lệnh và nhập

call writefile(getreg('z', 1, 1), "some-file")

Nếu bạn muốn nối thêm văn bản, thay vì ghi đè, bạn có thể sử dụng cờ "a" như sau

call writefile(getreg('z', 1, 1), "some-file", "a") 

Vì vậy, điều đó có nghĩa là không có lệnh dựng sẵn có thể làm điều này?
laktak

@laktak Không phải là tôi có thể tìm thấy ... A split()? getreg(.., 1, 1)trả về một danh sách, vì vậy split()không cần thiết
muru

Cảm ơn - bạn quá nhanh :) Tôi chỉ nhận ra lỗi của mình và chỉnh sửa nhận xét trong khi bạn trả lời.
laktak

2

Bạn cũng có thể sao chép nội dung của mình và tạo một cửa sổ mới

Ctrl-w n ........... create a new window
p .................. paste

Sau đó, bạn có thể tiết kiệm như bạn muốn


0
  1. Vim giúp nói (: h 10.3):

    Lưu ý: Khi sử dụng chế độ Visual để chọn một phần của một dòng hoặc sử dụng CTRL-V để chọn một khối văn bản, các lệnh dấu hai chấm sẽ vẫn áp dụng cho toàn bộ dòng. Điều này có thể thay đổi trong phiên bản tương lai của Vim.

  2. Plugin vis (# 1195) của Charles Campbell cung cấp lệnh chỉ :B {cmd}áp dụng {cmd}cho lựa chọn (khối) trực quan.

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.