ใน emacs ฉันจะจัดแนววงเล็บปิดให้สอดคล้องกับจุดเริ่มต้นของช่องเปิดได้อย่างไร


11

สไตล์การเยื้องดีฟอลต์สำหรับการเรียกใช้ฟังก์ชันหลายบรรทัดในโหมด emacs จำนวนมากคือการจัดแนววงเล็บปิดรอบกับอาร์กิวเมนต์อื่น ๆ ให้กับฟังก์ชันดังนี้:

function_one(
    arg1,
    arg2
    );

ฉันต้องการมันถ้าวงเล็บปิดปิดสอดคล้องกับจุดเริ่มต้นของบรรทัดที่มีวงเล็บเปิด ตัวอย่างเช่น:

function_one(
    function_two(
        f2_arg1,
        f2_arg2
    ),
    f1_arg2,
    f1_arg3
);

ฉันจะทำสิ่งนี้ได้อย่างไร


1
ฉันเพิกเฉยต่อสิ่งกระตุ้นนี้มาหลายปีแล้ว ! วันนี้เป็นวันที่จะแก้ไข
ศ. Falken ผิดสัญญา

คำตอบ:


12
  • สำหรับหลายโหมดที่ได้มาจากโหมด CC (ตัวอย่างเช่น C-โหมด, Java โหมด, PHP โหมด), การปรับแต่งc-offsets-alistเพื่อให้มีการตั้งค่าarglist-closec-lineup-close-paren
  • สำหรับโหมด cperl ให้ปรับแต่งcperl-indent-parens-as-blockเป็นจริง
  • สำหรับโหมด cperl GNU Emacs 24.3+ ให้ตั้งค่าcperl-close-paren-offsetเป็นลบcperl-indent-level
  • สำหรับโหมด perl ใน GNU emacs 24.3 ขึ้นperl-indent-parens-as-blockไปให้ปรับแต่งเป็นจริง
  • สำหรับโหมด python พบพฤติกรรมนี้ใน GNU emacs 24.3 ขึ้นไป

M-x customize-variableคุณสามารถปรับแต่งตัวแปรโดยการพิมพ์ หรือเพิ่มบรรทัดต่อไปนี้ใน~/.emacs:

(add-to-list 'c-offsets-alist '(arglist-close . c-lineup-close-paren))
(setq cperl-indent-parens-as-block t)
(setq perl-indent-parens-as-block t)

มีวิธีใดที่จะทำให้มันทำงานในโหมด python กับ Emacs 23.1.1 ได้ไหม?
ishmael

วิธีแก้ปัญหาสำหรับ Emacs 23.1.1 เป็นเพียงที่จะได้รับล่าสุดหลาม mode.el ที่นี่ ยกเลิกการเลือกไว้ในไดเรกทอรี ~ / .emacs.d ของคุณจากนั้นในไฟล์. emacs ของคุณเพิ่มสิ่งนี้:(add-to-list 'load-path (expand-file-name "~/.emacs.d/python-mode.el-6.1.3")) (require 'python-mode)
ishmael

และฉันจะทำงานนี้ในCหรือC ++ ได้อย่างไร
ศ. Falken ผิดสัญญา

มีวิธีใดที่จะทำให้สไตล์อื่น ๆเข้ามาpython-modeใน Emacs> = 24.3 หรือไม่?
mgalgs
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.