Tulis area yang dipilih ke file

13

Saya ingin menulis area yang dipilih secara visual ke file.

Sebagai contoh:

prefix [sample text
more text] suffix

[] adalah blok yang dipilih yang harus diambil, menghasilkan file baru yang mengandung:

sample text
more text

wPerintah normal menggunakan baris sehingga '<,'>w! /tmp/testakan menyertakan awalan / akhiran (dan `<,`>w! /tmp/testtidak diizinkan).

laktak
sumber

Jawaban:

8

Pertama, salin (juga disebut 'yank' dalam bahasa vim) pilihan visual Anda ke register pilihan Anda. Misalnya, untuk menyalin untuk mendaftar 'z', buat pilihan visual Anda, lalu ketikkan "zy.

Jika Anda memberi, Anda bisa melakukan ini tanpa menggerakkan kursor, dengan meletakkan kursor pada kurung kurawal pertama, dan kemudian mengetik v%"zy.

Kerusakan: v-> mulai pemilihan visual; %-> pindah ke penjepit yang cocok; "z-> gunakan register 'z'; y-> yank (salin) seleksi (dalam hal ini, ke register 'z').

Setelah Anda menyalin pilihan visual Anda untuk mendaftar 'z', pergi ke baris perintah, dan ketik

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

Jika Anda ingin menambahkan teks, alih-alih menimpa, Anda dapat menggunakan bendera "a" sebagai berikut

call writefile(getreg('z', 1, 1), "some-file", "a") 
muru
sumber
Jadi itu berarti tidak ada perintah builtin yang bisa melakukan ini?
laktak
@laktak Bukannya aku bisa menemukan ... A split()? getreg(.., 1, 1)mengembalikan daftar, jadi split()tidak diperlukan.
muru
Terima kasih - Anda terlalu cepat :) Saya baru menyadari kesalahan saya dan mengedit komentar saat Anda merespons.
laktak
3

Anda juga dapat menyalin konten Anda dan membuat jendela baru

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

Maka Anda dapat menyimpan seperti yang Anda inginkan

SergioAraujo
sumber
0
  1. Vim help said (: h 10.3):

    Catatan: Saat menggunakan mode Visual untuk memilih bagian dari suatu baris, atau menggunakan CTRL-V untuk memilih blok teks, perintah titik dua akan tetap berlaku untuk seluruh baris. Ini mungkin berubah di versi Vim masa depan.

  2. Plugin vis (# 1195) oleh Charles Campbell menawarkan perintah :B {cmd}untuk menerapkan {cmd}hanya pada pemilihan visual (blok).

Hotschke
sumber