Adakah perbedaan fungsionalitas yang menggunakan konvensi dua ruang vs satu ruang pada akhir kalimat?


9

Q: Apa alasan praktis yang ada tidak untuk set sentence-end-double-spaceke nil?

Utas yang baru-baru ini dihidupkan kembali untuk mengenali kalimat yang tidak berakhir dalam dua ruang menginspirasi pertanyaan ini.

The Emacs pengguna node pada kalimat catatan bahwa perintah kalimat menganggap bahwa kita menggunakan konvensi pengetik Amerika ini menempatkan dua ruang di akhir kalimat (sebagai lawan, mengatakan, konvensi Perancis satu ruang). Argumen untuk / terhadap konvensi dua-ruang tampaknya mendapat polemik yang cukup (misalnya, karya Slate ini ).

Saya tidak terlalu peduli dengan penampilannya sejauh saya membiarkan LaTeX menangani pengaturan tipe saya, tetapi konvensi dua-ruang ditumbuk ke dalam memori otot. Namun, ketika saya menempelkan teks ke buffer Emacs dari sumber lain (halaman web, dll.), Itu hampir selalu ada dalam konvensi satu ruang. Itu semacam mengganggu dalam bagaimana-berani-mereka-berbeda-dari-saya semacam cara, dan aku tergoda untuk set sentence-end-double-spaceuntuk nilMengatasi Reality. Saya tidak pernah memiliki, karena saya selalu berasumsi bahwa Sesuatu Akan Hancur jika saya melakukannya. Saya hanya tidak memiliki dasar yang kuat untuk asumsi itu.

Jadi: apakah ada konsekuensi praktis dalam hal hilangnya fungsi untuk menetapkan sentence-end-double-spaceke nil? Satu-satunya perubahan signifikan yang dapat saya pikirkan adalah bahwa fungsi pengisian akan mengubah konvensi dua ruang menjadi konvensi satu ruang.


1
Suka pertanyaan ini, saya benar-benar mengerti apa yang Anda rasakan ...
mbork

Bahkan artikel Slate yang Anda kutip berargumen bahwa dalam tipe monospaced, konvensi ruang ganda dapat membantu mengidentifikasi akhir kalimat.
alexurba

Jawaban:


9

Satu-satunya konsekuensi yang saya lihat adalah kemampuan mengenali periode dari singkatan.

Sebagaimana dinyatakan oleh gnu.org :

Jika Anda ingin menggunakan hanya satu spasi di antara kalimat, Anda bisa mengatur variabel sentence-end-double-spaceke nil untuk membuat perintah kalimat berhenti untuk spasi tunggal. Namun, ini memiliki kelemahan: tidak ada cara untuk membedakan antara periode yang mengakhiri kalimat dan yang menunjukkan singkatan .

Untuk pengeditan yang mudah dan andal, karena itu kami sarankan Anda mengikuti konvensi dua ruang. Variabel sentence-end-double-spacejuga mempengaruhi pengisian .

Saya tidak pernah menggunakan konvensi dua ruang, saya pikir, itu tergantung pada bagaimana / apa yang Anda edit.


3

Ini sebenarnya bukan jawaban untuk pertanyaan seperti yang dinyatakan ("apa yang saya kehilangan jika saya set sentence-end-double-spaceke nil"), melainkan sesuatu seperti cara ketiga ;-). (Juga, ini adalah salinan (sebagian) dari pos yang baru saja saya tulis di blog saya ; jika ini tidak pantas, tolong hapus seseorang ini, tapi saya harap ini bisa membantu.)

Jadi, pada dasarnya, mengapa Anda ingin kehilangan sesuatu dengan menetapkan sesuatu yang Anda sukai? Bagaimanapun, ini Emacs!

(defvar sentence-end-double-space-threshold 2
  "How many occurrences of \".  \" per kilobyte should be enough
  to declare this file as using two spaces after sentences.")

(defun set-sentence-end-double-space ()
  "Set `sentence-end-double-space' according to how often the
  literal string \".  \" occurs in the current buffer."
  (make-local-variable 'sentence-end-double-space)
  (if (>= (* (count-matches "\\.  ") 1024)
      (* (buffer-size) sentence-end-double-space-threshold))
      (setq sentence-end-double-space t)
    (setq sentence-end-double-space nil)))

(add-hook 'find-file-hook 'set-sentence-end-double-space)     

Sekarang ketika Anda membuka file, Emacs memutuskan (menggunakan nilai yang sangat konservatif sentence-end-double-space-threshold, yang Anda bisa setquntuk apa pun yang Anda rasa benar) gaya apa itu. (Jelas, ini tidak membantu jika disisipkan dari browser atau apa pun. Ini bisa dilakukan, memberi nasihat yankdan - jika perlu - mengganti spasi dalam teks yang ditarik ke bawah seperlunya, tapi hei, saya hanya punya 15 menit untuk itu!)

PS. Tentu saja, itu tidak memperhitungkan periode akun di EOL dll; tapi sekali lagi, ambangnya sangat rendah.

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.