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).

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") 

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


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).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.