VIM berkomentar apa yang saya tempel

14

Saya mendapatkan ini ketika mencoba menyalin inti ini di vim: https://gist.github.com/w0ng/3278077

masukkan deskripsi gambar di sini

Saya memperhatikan perilaku yang sama di mana-mana: Jika saya menempelkan sesuatu yang menyertakan komentar, semua yang mengikuti komentar ditempelkan di komentar.

Mungkin ada hubungannya dengan fakta bahwa jika saya menulis komentar pada mode insert dan tekan enter, baris berikut secara otomatis menambahkan komentar.

Bagaimana saya bisa menyingkirkan perilaku ini?

jviotti
sumber

Jawaban:

26

Masuk ke mode rekat sebelum Anda rekat:

:set paste

Untuk beralih kembali ke mode "normal":

:set nopaste
Tikar
sumber
6
atau: atur tempel! untuk beralih :)
valbaca
@valbaca Anda dapat menggunakan backticks untuk membuat code blockskomentar
Izkata
Saya membutuhkan perintah-perintah itu sebaliknya!
11

Selain pasteopsi yang disebutkan oleh Mat , Anda juga dapat langsung mengakses papan klip X dari VIM:

  • "*p untuk memasukkan pilihan X11
  • "+p untuk memasukkan papan klip X11

Anda memerlukan versi VIM dengan dukungan X11 (dalam Debian dan turunannya Anda perlu menginstal vim-gtkatau vim-gnomepaket).

Untuk informasi lebih lanjut, lihat dokumentasi ( :help x11-selection).

Jofel
sumber
6

Inilah yang terjadi. Ada opsi pemformatan Vim yang secara otomatis mengomentari baris baru saat Anda berada di baris komentar. Beberapa opsi ini biasanya diaktifkan secara default. Sebagai contoh,

# a comment<CR>
# 

Seperti yang dapat Anda lihat, baris baru secara otomatis diawali dengan karakter komentar. Anda dapat menonaktifkan sebagian besar opsi ini dengan menghapus cdan rdari pengaturan formatoptions. Lihat :h fo-tableuntuk informasi lebih lanjut tentang opsi ini.

:set formatoptions-=cr

Vim tidak memiliki cara untuk membedakan antara teks yang disisipkan dengan mekanisme tempel emulator terminal Anda dan teks yang Anda ketikkan. Mengatur opsi tempel ( set paste) memberi tahu Vim untuk mengharapkan teks yang disisipkan dan menonaktifkan opsi pemformatan apa pun yang tidak diinginkan.


sumber
3

Favorit saya menggunakan putperintah.

  • :put* rekatkan dari pilihan pada baris saat ini
  • :put+ rekatkan dari buffer pada baris saat ini

"*pSaya "+pjuga baik, tetapi :pu[t]memiliki beberapa keunggulan:

  • selalu menempel
  • Anda dapat menambahkan parameter tambahan untuk mengontrol tempat memasukkan:
    • :$put+ rekatkan setelah baris terakhir
    • :0put+ rekatkan di awal file
defhlt
sumber
1

Sebagai jawaban samping, Jika Anda memiliki file yang memiliki ini Anda dapat menyingkirkannya dengan memasukkan mode blok Visual Vertikal

ctrl+ vdan kemudian menggunakan tombol panah / hjkl untuk menavigasi bagian yang ingin Anda hapus dan kemudian tekan sajad

Terkadang saya menemukan ini lebih cepat daripada membatalkan pengaturan mode tempel, menyisipkan dan menghapus mode tempel.

exussum
sumber