Konversi EOL di notepad ++

113

Untuk beberapa alasan, ketika saya membuka file dari server unix di mesin windows saya, mereka terkadang memiliki konversi Macintosh EOL, dan ketika saya mengedit / menyimpannya lagi mereka tidak berfungsi dengan baik di server unix. Saya hanya menggunakan notepad ++ untuk mengedit file dari server unix ini, jadi apakah ada cara untuk membuat makro yang secara otomatis mengubah format EOL ke Unix setiap kali saya membuka file?

Jeff
sumber
kemungkinan duplikat Ubah EOL pada beberapa file sekaligus
Navid EMAD
1
Masalah Anda mungkin ada pada program FTP apa pun yang Anda gunakan. Misalnya, saya menggunakan WinSCP untuk melakukan remote ke server Unix, Notepad ++ ditetapkan sebagai editor default saya, tetapi saya harus masuk ke pengaturan WinSCP dan mengatur mode transfer ke Binaryagar ujung baris tetap dipertahankan. Jadi, Anda mungkin dapat mengkonfigurasi ulang program FTP / SCP / etc untuk mentransfer file dengan cara yang berbeda.
Slicktrick

Jawaban:

200

Fungsionalitas itu sudah ada di Notepad ++. Dari menu "Edit", pilih "Konversi EOL" -> "Format UNIX / OSX".

tangkapan layar opsi untuk menemukan lebih cepat (atau versi bahasa yang berbeda)

Anda juga dapat mengatur EOL default di notepad ++ melalui "Pengaturan" -> "Preferensi" -> "Dokumen Baru / Direktori Default" lalu pilih "Unix / OSX" di bawah kotak Format.

Nate Allen
sumber
7
Saya tahu tentang konversi di menu edit, dan pengaturan yang Anda sebutkan hanya untuk dokumen baru. Saya ingin secara otomatis melakukan konversi untuk setiap file yang saya buka (atau setiap file yang saya simpan)
Jeff
Masalahnya adalah ketika saya membuka file Unix yang ada, "Konversi EOL" -> Format UNIX / OSX berwarna abu-abu. Notepad ++ membuat frustasi untuk digunakan dengan file UNIX, jadi saya menggunakan Notetab Lite yang memungkinkan saya menyimpan Semua file sebagai UNIX, bukan hanya yang baru.
Off The Gold
3
@OffTheGold Opsi UNIX EOL berwarna abu-abu karena ini adalah pilihan saat ini.
blakeoft
Benar. Terima kasih dari November 2017 melalui Google.
SDsolar
Ini tidak berhasil untuk saya. Saya tetap memilih "Konversi EOL -> Unix", tetapi tidak melakukan apa-apa. Saya kembali ke menu dan melihat bahwa Windows adalah opsi berwarna abu-abu (karena itu dipilih?), Jadi saya klik Unix lagi. Saya bahkan mencoba memilih-semua teks saya terlebih dahulu jika itu hanya berfungsi pada seleksi, lalu memilih Unix lagi. Tetap saja itu tidak melakukan apa-apa.
Loduwijk
16

Di Notepad ++, gunakan ganti semua dengan ekspresi reguler. Ini memiliki keuntungan atas perintah konversi dalam menu yang dapat Anda operasikan di seluruh folder tanpa harus membuka setiap file atau menyeret n drop (pada beberapa ratus file akan terasa menjadi lebih lambat) ditambah Anda juga dapat mengatur filter wildcard nama file.

(\r?\n)|(\r\n?)

untuk

\n

Ini akan cocok dengan setiap pola akhir baris yang mungkin (satu \ r, \ n atau \ r \ n) kembali ke \ n. (Atau \ r \ n jika Anda mengonversi ke gaya windows)

Untuk mengoperasikan banyak file, baik:

  • Gunakan "Ganti Semua di semua dokumen yang dibuka" di tab "Ganti". Anda harus menarik dan melepas semua file ke Notepad ++ terlebih dahulu. Ada baiknya Anda memiliki kendali atas file mana yang akan dioperasikan tetapi bisa lambat jika ada beberapa ratus atau ribuan file.
  • "Replace in files" pada tab "Find in files", dengan filter file pilihan Anda, misalnya, * .cpp * .cs di bawah satu direktori yang ditentukan.
Wappenull
sumber
Hal ini dapat menyebabkan hilangnya EOL karena mengganti \ r \ n \ r \ n dengan \ n tunggal. Kupikir.
Sunspawn
Konfirmasi berfungsi di Notepad ++ 6.9.1. Ini akan mencari ke depan, oleh karena itu tidak secara rekursif menggantikan yang ada di belakang.
Wappenull
Dalam menjawab: "Ini dapat menyebabkan hilangnya EOL karena mengganti \ r \ n \ r \ n dengan satu \ n" >> Ini tidak akan, karena menggunakan | (atau) operator antara 2 grup yang memungkinkan.
Wappenull
3

Saya membuka file "langsung" dari WinSCP yang membuka file di Notepad ++ Saya memiliki file php di server linux saya yang selalu dibuka dalam format Mac apa pun yang saya lakukan :-(

Jika saya mengunduh file dan kemudian membukanya dari lokal (windows) itu terbuka sebagai Dos / Windows .... hmmm

Solusinya adalah EOL-convert file lokal ke "UNIX / OSX Format", simpan dan kemudian upload.

Sekarang ketika saya membuka file langsung dari server itu terbuka sebagai "Dos / Windows" :-)

MrCalvin
sumber
1

Bergantung pada proyek Anda, Anda mungkin ingin mempertimbangkan untuk menggunakan EditorConfig ( https://editorconfig.org/ ). Ada sebuah plugin Notepad ++ yang akan memuat .editorconfig di mana Anda dapat menentukan "lf" sebagai akhir baris wajib.

Saya baru mulai menggunakannya, tapi sejauh ini bagus, dan proyek open source yang saya kerjakan telah menyertakan file .editorconfig selama bertahun-tahun. Pengaturan "Konversi EOL" tidak diubah, jadi ini bisa sedikit membingungkan, tetapi jika Anda "Lihat> Tampilkan Simbol> Tampilkan Akhir Baris", Anda dapat melihat bahwa itu menambahkan LF dan bukan CRLF, bahkan ketika "Konversi EOL "dan sudut bawah bawah menunjukkan sesuatu yang lain (misalnya Windows (CR LF)).

D. Masak
sumber