Indentasi otomatis dalam Notepad ++

187

Kami selalu menulis kode seperti ini formal:

void main(){
  if(){
    if()
    }

Teks alternatif

Tetapi ketika saya menggunakan Notepad ++ , layarnya adalah:

void main(){
if(){
if()
}

Teks alternatif

Bagaimana cara menggunakan Notepad ++ ke indentasi otomatis?

Terima kasih kepada Jonathan , saya telah mengaturnya, tetapi itu tidak berpengaruh. Snapshot di bawah ini:

Teks alternatif

Saya menggunakan Notepad ++ versi 5.1.3.

Turion
sumber

Jawaban:

135

Notepad ++ hanya akan secara otomatis memasukkan indentasi berikutnya jika Anda secara manual indentasi baris pertama dalam sebuah blok; jika tidak, Anda dapat indentasi ulang kode Anda setelah menggunakan fakta TextFX > TextFX Edit > Reindent C++ code.

skronida
sumber
1
Jika versi Anda tidak memiliki DLL, Anda bisa mendapatkannya dari versi ZIP 5.9.0. Beberapa versi yang lebih baru tidak menyertakan DLL ini. notepad-plus-plus.org/download/v5.9.0.html
Fostah
2
Saya benar-benar menemukan ini sambil mencari cara untuk memformat kode javascript. Ternyata, ini berfungsi untuk file .js juga!
sacredfaith
7
@Fostah: Anda juga dapat menginstal "Text FX Character" melalui> Plugins> Plugin Manager> Show Plugin Manager
Adrien Be
@scronide, Apakah ada tombol pintas untuk ini?
Pacerier
Perhatikan bahwa meskipun namanya, itu benar-benar juga benar indentasi ulang kode javascript yang saya coba untuk memperbaiki lekukan. Tidak ada alasan saya akan mengharapkan untuk tidak, hanya menyebutkan, karena nama adalah lebih spesifik. Entah mengapa penulis perpustakaan itu merasa dia harus memberikan preferensi khusus untuk C ++ ...: D
neminem
99

Jika menu TextFX tidak ada, Anda perlu mengunduh & menginstal plugin. Plugins-> Plugin Manager-> Show Plugin Manager dan kemudian periksa plugin TextFX Characters . Klik 'instal,' restart Notepad ++.

Dalam versi Notepad ++ v6.1.3, saya menyelesaikannya dengan: Plugin Manager-> Show Plugin Manager ** dan kemudian periksa plugin "Indent By Fold"

tidak dikenal
sumber
2
Lekukan oleh lipatan itu mengagumkan. Fakta bahwa ia berfungsi dalam format sewenang-wenang ( XML, C / ++ / #, dll. ) Sangat bagus. Satu-satunya masalah dengan itu adalah tumpukan "undo". Saat digunakan, jika Anda ingin membatalkan ke titik sebelum ketika Anda menjorok ke dalam, Anda harus membatalkan melalui setiap lekukan-ulang baris, karena tidak ditambahkan ke stack sebagai perintah tunggal. Pada dasarnya, berhati-hatilah saat bekerja dengan file yang panjang .
Dan Lugg
Hai @Dan masalah undo tampaknya telah diperbaiki dalam versi indentasi yang lebih baru ...
538ROMEO
1
Ya, itu tidak ada dan tidak ada Plugin Manager.
Beyondo
31

Tampaknya ada opsi untuk auto-format XML setidaknya. Itu dapat ditemukan di TextFX -> TextFX HTML Tidy -> Tidy: reindent XML.

Abhishek
sumber
2
Anda memerlukan plugin TextFx untuk ini
arviman
29

Sebagian besar pengembang program pengeditan teks menyalahgunakan nama ini (indentasi otomatis). Nama yang benar adalah "mempertahankan indentasi". Indentasi otomatis adalah yang Anda inginkan, tetapi tidak diterapkan.

Saya juga ingin melihat fitur ini di Notepad ++.

Peter Mortensen
sumber
22

Dalam versi terbaru (setidaknya), Anda dapat menemukannya melalui:

  • Pengaturan (menu)
  • Preferensi ...
  • MISC (tab)
  • daftar kotak centang kiri bawah
  • " Indentasi otomatis " adalah opsi ke-2 dalam grup ini

[ EDIT ] Meskipun demikian, saya tidak berpikir itu memiliki implementasi terbaik dari indentasi otomatis. Jadi, periksa untuk memastikan Anda memiliki versi 5.1 - indentasi otomatis baru-baru ini diperbaiki, sehingga mengoreksi indentasi Anda secara otomatis.


Perhatikan juga bahwa Anda melewatkan blok untuk ke-2 if:

void main(){
  if(){
    if() { }  # here
  }
}
Jonathan Lonowski
sumber
8
Perhatikan bahwa pengaturan indentasi otomatis di Notepad ++ ini mengasumsikan Anda melakukan indentasi pertama dalam satu blok secara manual; itu tidak memformat kode secara otomatis untuk Anda.
scronide
Saya mengerti maksud Anda sekarang, maafkan Eng saya yang malang ... Bahasa ibu saya adalah bahasa Cina ...
Turion
14

Anda dapat menggunakan plugin 'Indent by fold'. Instal dari pengelola plugin. Ini bekerja dengan baik untuk saya.

Aki143S
sumber
2
Indentasi oleh lipatan bagus, kecuali itu hanya indentasi demi lipatan;) Dalam situasi di mana Anda telah membuat indentasi daftar, kecuali bahasa menggunakan karakter lipat untuk membatasi penginisialisasi, itu akan berakhir tanpa indentasi. Contohnya adalah inisialisasi array multi-line dalam menggunakan PHP array( ... ), di mana ()non-lipat.
Dan Lugg
5

Dalam versi 6.6.8 saya menginstal plugin NppAutoIndent dari Plugins> Plugin Manager> Show Plugin Manager. Kemudian saya memilih opsi Indent Smart di Plugin> NppAutoIndent. Semoga ini membantu.

TheRS
sumber
4

Sedikit pembaruan: Anda dapat melewati Plugin TextFX dan cukup menggunakan Tidy2 . Di sini Anda dapat mengonfigurasi aturan pemformatan Anda sendiri untuk berbagai jenis kode. Mudah dipasang dan dihapus di dalamnya

Notepad ++> Plugins> Plugin Manager> Show Plugin Manager

dan hanya mencari Tidy2 dan menginstalnya. Selesai

Sven Ya
sumber
Bisakah Anda jelaskan lebih banyak?
Dieter Meemken
Informasi lebih lanjut tentang konfigurasi dapat ditemukan di sini: stackoverflow.com/questions/14865770/using-tydy2-for-notepad
Sven Ya
cukup sulit untuk menggunakan ini dibandingkan dengan plugin lain
Gaurav khurana
4

Bagi mereka yang menggunakan Notepad ++ v6.8.1 dan yang lebih baru, pengaturan indentasi sekarang ditempatkan di menu PengaturanPreferensiMISC. Indentasi Otomatis .

Masukkan deskripsi gambar di sini

Luke
sumber
3

Coba plugin UniversalIndentGUI untuk Notepad ++. Itu kembali indentasi kode berdasarkan beberapa parameter. Itu bekerja dengan baik untuk saya.

meningkat
sumber
3
Perhatikan bahwa tautannya langsung ke unduhan. Situs webnya adalah: universalindent.sourceforge.net . Juga, ini tampaknya menjadi GUI untuk mengkonfigurasi alat reformating, daripada memformat teks dengan benar untuk memulai.
Martin Bonner mendukung Monica
2

Ini mungkin tampak konyol, tetapi dalam pertanyaan awal, Turion mengedit file teks biasa. Pastikan Anda memilih bahasa yang benar dari menu Bahasa

kurdtpage
sumber
2
Menu TextFX → TextFX Edit → Reindent C++ code

masukkan deskripsi gambar di sini

Tapi , Notepad ++ tidak datang dengan plugin "Text FX Character" ini. Anda harus menginstalnya melalui

Plugins → Plugin Manager → Show Plugin Manager.

Untuk menambahkan pintasan untuk Indentasi .

Klik PengaturanShortcut Mapper ... atur tombol pintas yang Anda inginkan. Saya lebih suka Ctrl+ =.

Masukkan deskripsi gambar di sini

Saurav Sahu
sumber
1

Instal plugin Tidy2. Saya memiliki Notepad ++ v6.2.2, dan Tidy2 berfungsi dengan baik sejauh ini.

pengguna9717890
sumber
1

Pertama unduh pengelola plugin tautan ini kemudian unzip folder zip dan salin ini di dalam folder program / notepad ++ Anda. kemudian restart notepad ++ Anda. kemudian Anda melihat pengelola plugin di dalam menu plugin. lalu klik pengelola plugin lalu klik tampilkan pengelola plugin. Ini menunjukkan semua daftar plugin Anda. dari daftar di bawah, temukan alat XML, periksa dan instal. kemudian restart notepad ++ Anda. Setelah membuka dokumen kemudian plugins / xml tools / pretty plain (indent text) kemudian nikmati.

tapos ghosh
sumber
0

Bagi mereka yang menggunakan versi 7.8.5, pengaturan indentasi otomatis sekarang terletak di "Pengaturan" -> "Preferensi ..." -> "Penyelesaian Otomatis".

masukkan deskripsi gambar di sini

ooi18
sumber
0

Cobalah untuk menyimpan file sebelumnya, maka itu akan membuat indentasi.

Sh13
sumber
Bisa jadi komentar!
Farbod Ahmadian
Bisakah Anda menjelaskan lebih lanjut tentang ini?
Toto