Pertanyaan Pengemasan ulang teks mudah


Saya mencari alat yang memungkinkan saya untuk dengan mudah bungkus kembali teks, yaitu alat yang menghapus jeda baris, tetapi bukan garis kosong, dari pilihan teks atau bidang teks, dan yang berfungsi di Chrome dan Windows.

Poin bonus untuk apa pun yang berfungsi di luar peramban juga, dan itu berhasil di tempat (Yaitu, tidak perlu menyalin-menempel teks melalui jendela terpisah atau menggunakan sesuatu seperti http://www.textfixer.com/tools/remove-line-breaks.php)

Ekstensi peramban, skrip GreaseMonkey atau aplikasi yang juga berfungsi di Linux dan / atau Mac (atau bahkan lebih baik, yang multi-platform) semuanya disambut baik.

Berikut ini contoh bagaimana alat harus berperilaku. Jika saya memiliki yang berikut di bidang teks:

This is a test for SuperUser.com. This is 
a test for SuperUser.com. This is
a test for
SuperUser.com. This is a test 
for SuperUser.com 

This is a test for SuperUser.com. This is 
a test for SuperUser.com. This 
is
a 
test
for SuperUser.com. This is a test for SuperUser.com

kemudian, menggunakan pintasan (mis. keyboard), alat harus mengonversinya menjadi:

Ini adalah tes untuk SuperUser.com. Ini   adalah tes untuk SuperUser.com. Ini adalah   tes untuk SuperUser.com. Ini adalah sebuah ujian   untuk SuperUser.com

Ini adalah tes untuk SuperUser.com. Ini   adalah tes untuk SuperUser.com. Ini adalah   tes untuk SuperUser.com. Ini adalah sebuah ujian   untuk SuperUser.com

Terima kasih sebelumnya!


2
2018-01-11 16:17


asal


Hanya untuk menjadi jelas, Anda ingin fungsi itu di Google Chrome? (karena Anda menyebut "aplikasi") - Daniel Beck♦
Paling tidak, semua yang berfungsi di Chrome di Windows akan bekerja untuk saya. Tetapi akan lebih bagus lagi jika kita juga dapat menemukan sesuatu yang berfungsi di luar peramban dan itu adalah lintas platform. - Amelio Vazquez-Reina
Ini mungkin bukan daging spesifikasi yang tepat jadi saya akan mempostingnya sebagai komentar. Apa pun yang memiliki ekspresi reguler akan dapat melakukan ini dengan mencari ganti seperti notepad ++ (notepad-plus-plus.org). Ganti mode ganti ke ekspresi reguler, lalu ganti / n tanpa apa-apa. - Jeff F.
Apa perbedaan antara jeda baris dan jeda paragraf? Apakah hanya '<text> \ n <text>' dibandingkan dengan '<text> \ n \ n <text>'? - Puddingfox
@Puddingfox, Ini mungkin bergantung pada bagaimana teks dikodekan dan dirender (misalnya dalam HTML itu mungkin berarti <p> ​​</ p> atau <br> </ br>), tetapi idealnya alat ini harus berfungsi bagaimanapun juga tentang bagaimana garis putus atau paragraf dienkode (yaitu harus menghormati bahasa markup teks yang mendasarinya). Lagi pula, saya meminta a WYSIWYG (Apa yang Anda Lihat Adalah Apa yang Anda Dapatkan) solusi. - Amelio Vazquez-Reina


Jawaban:


Bukan peramban, bukan cross-platform, tetapi mungkin berguna bagi seseorang:

TextMate untuk Mac OS X memiliki perintah Sunting »Unwrap Paragraph / Selection (Ctrl-Opt-Q) untuk tujuan ini.


Emacs punya M-q untuk tujuan ini, Anda mungkin harus menetapkan lebih lebar dari default.


Gunakan skrip Python berikut (ditulis di OS X, tetapi sebaliknya cross-platform):

#!/usr/bin/env python
import sys

current = "\n"
for line in sys.stdin:
    if line != "\n":
        sys.stdout.write(current[:-1])
    else:
        print "\n"
    current = line
print current[:-1]

Mulai seperti ini:

cat test.txt | ./rewrap.py

Di Mac OS X, buat a Layanan menggunakan Automator di aplikasi apa saja yang diterima teks sebagai input dan mengganti teks yang dipilih. Tambah sebuah Jalankan Shell Script tindakan yang meneruskan masukan ke stdin dan panggil skrip Python di atas. Tetapkan pintasan keyboard global untuk aplikasi apa pun di System Preferences »Keyboard.

alt text


2
2018-01-12 03:06



Solusi-solusi ini luar biasa, Daniel, terima kasih !. Namun, saya pikir saya masih mencari sesuatu yang lain. Ide python menarik, tetapi saya tidak yakin apakah atau bagaimana saya bisa menggunakannya sebagai di tempat solusi saat mengedit bidang teks di browser saya. Juga, saya menggunakan Emacs saat coding, jadi terima kasih untuk tipnya, tapi saya butuh sesuatu yang berfungsi di browser. - Amelio Vazquez-Reina
@AmV kemudian lihat pengeditan terbaru saya. Setidaknya di OS X, Anda mendapatkan skrip Python dalam aplikasi apa pun, berkat Layanan dan Automator. - Daniel Beck♦
Terima kasih @Daniel. Mereka terlihat sangat cocok untuk OS X, dan saya akan memilih Anda jika saya memiliki reputasi yang cukup untuk melakukannya (saya baru saja mendaftar). Sayangnya saya butuh sesuatu yang bekerja di bawah Windows juga. - Amelio Vazquez-Reina
@AmV Anda harus benar-benar memasukkan persyaratan ini dalam pertanyaan Anda. Seperti itu, sepertinya tidak masalah pada sistem mana, asalkan di semua aplikasi. Yah, setidaknya saya mendapat perintah rewrap / unwrap global dari itu;) - Daniel Beck♦
Poin bagus. Saya menambahkan "setidaknya di browser saya (Chrome) dan pada kebutuhan Windows "di awal. - Amelio Vazquez-Reina


Lihat Clipboard Fusion oleh Binary Fortress Software. Saya sudah mengaturnya sehingga ketika saya menyalin teks dari aplikasi tertentu (Adobe Reader), teks yang disalin secara otomatis dilucuti dari jeda baris. Sangat berguna.


2





(G) Vim dapat melakukan ini. Mis., Taruh ini di .vimrc Anda:

vnoremap <F5> :s/\s*\n\s*\n\s*/<<mybreak>>/g<CR>gvJgv:s/<<mybreak>>/\r\r/g<CR>

Ini memberikan kunci F5 (Anda dapat menggunakan apa pun yang Anda inginkan sebagai gantinya; dengan vim Anda dapat menyesuaikan semua keymapping yang Anda inginkan) untuk melakukan semua hal berikut: ketika berada dalam "mode visual" (misalnya, ketika sebuah blok teks dipilih), ganti semua pelapis baris di teks yang dipilih diikuti oleh garis tanpa spasi tetapi spasi diikuti oleh baris liner lainnya dengan placeholder <<mybreak>>, sorot ulang bagian yang sama dan gabungkan semua garis, kurangi semua spasi kosong antar baris ke satu spasi ,, bandingkan ulang bagian yang sama dan ganti placeholder <<mybreak>> dengan dua baris baru untuk memulihkan jeda paragraf.

Tentu saja, Anda tidak perlu mengingat apa pun kecuali F5.

Sebenarnya, mungkin ada cara yang lebih sederhana untuk melakukan ini dalam vim. Keterampilan vim saya tidak bisa dibandingkan dengan beberapa; ini hanya bagaimana aku bisa melakukannya.

Dapatkah Anda menggunakannya di browser: mungkin tidak secara langsung, tetapi dengan plugin Firefox seperti vimperator atau pentadaktil memungkinkan Anda untuk mengedit semua webfields di vim (atau editor teks lainnya dari ponsel Anda), sehingga Anda akan dapat menggunakannya di sana juga.


1





menggunakan AutoHotkey (sumber terbuka):

Kode ini akan memungkinkan Anda untuk menyalin ke clipboard (menggunakan CTRL + ALT + C *) dan membukanya (siap untuk dilewati). Seperti salinan normal yang lalu, dan itu akan membuat garis-garis kosong di antara paragraf.

!^+c::                 ;copy + unwrap but keep the empty lines
clipboard =
Send, {CTRLDOWN}c{CTRLUP}{ESC}
ClipWait
NewStr := RegExReplace(Clipboard, "([^\r\n])\R([^\r\n])", "$1$2")
clipboard = %NewStr%
ClipWait
return
  • Anda dapat mengubah pintasan Anda dengan tombol apa saja hanya dengan mengubah baris pertama.

1