2012-04-27 33 views
6

Tôi đang sử dụng notepad ++ trong vài tháng và đã thực hiện tất cả các cài đặt nhưng không thể tìm cách làm cho npp đóng khi tôi đóng tab cuối cùng. Nó sẽ luôn luôn bắt đầu một tài liệu trống mới.Đóng Notepad ++ khi tài liệu cuối cùng được đóng

Bất kỳ ý tưởng nào làm cách nào tôi có thể làm cho npp đóng khi đóng tài liệu cuối cùng?

Trả lời

0

notepad ++ là ứng dụng biểu mẫu MDI, giống như MS OFFICE, đóng biểu mẫu MDI con sẽ không ảnh hưởng đến ứng dụng chính, vì vậy, tôi nghĩ không có ý tưởng trừ khi bạn xây dựng lại nguồn của nodepad ++.

2

Nếu bạn đã quen thuộc với Python, bạn có thể thử trình cắm thêm Python Script cho N ++. Bạn sẽ thiết lập tập lệnh gọi lại cho sự kiện đóng tài liệu. Bên trong nó làm một số lần lặp lại thông qua tất cả các tài liệu đã mở và khi chỉ còn lại 1 văn bản không có văn bản, hãy chấm dứt N ++.

Cá nhân tôi đã ánh xạ các phím "Alt + x" để "Thoát" Notepad ++, điều này sẽ dễ dàng hơn để làm hỏng sau đó thường làm việc "Alt + F4".

/EDIT

Tôi thực sự rất thích ý tưởng của bạn, vì vậy tôi đã nhanh chóng thử nó bản thân mình. Mất ~ 20 phút để tìm ra. Dưới đây là một giải pháp hoàn chỉnh:

  1. Cài đặt plug-in Python Script (link ở trên)
  2. Đến Plugins> Python> Cấu hình và thay đổi initialisation chế độ từ LAZY để ATSARTUP
  3. Mở "... \ Notepad ++ \ plugins \ Pyth onScript \ scripts \ startup.py "và địa điểm sau mã ở phần cuối của nó: Seems like the code tags don't work below a numbered list, so click me to see the code
def shutdownNppOnLastFileClosed(args): 
    import os 
    files = notepad.getFiles() 
    # there are always at least 2 'buffers' open in N++ 
    if len(files) == 2: 
     currentBufferID = notepad.getCurrentBufferID() 
     for (filename, bufferID, index, view) in files: 
      if os.path.exists(filename): 
       break 
      notepad.activateBufferID(bufferID) 
      if editor.getLength() > 0: 
       break 
      # TODO: just to be on the safe side - if we 
      # reached here, we actually should also check 
      # if the 2 left empty buffers are not unsaved, 
      # but I couldn't find a way to do that. 
     else: 
      # following 'menuCommand' looks cleaner than 
      # the 'sys.exit' but it currently deadlocks N++: 
      #notepad.menuCommand(MENUCOMMAND.FILE_EXIT) 
      sys.exit(0) 
     notepad.activateBufferID(currentBufferID) 
notepad.callback(shutdownNppOnLastFileClosed, [NOTIFICATION.FILECLOSED]) 
+0

có lỗi - khi không có tài liệu nào được mở - chỉ mở (một && trống && không thay đổi) tài liệu - nó không hoạt động – msangel

3

này là hoàn toàn dựa trên mã ufo của. Chỉ có nó hoạt động khi bạn đóng tài liệu cuối cùng là nó mới hay không, và nó không đóng băng npp.

Vì lợi ích ngắn gọn, đây sau các bước một lần nữa:

  1. cài đặt Python Script plug-in
  2. On Plugins> Python Script> Cấu hình thay đổi chế độ initialisation từ lười biếng để ATSARTUP
  3. Mở ra ... \ Notepad ++ \ plugins \ PythonScript \ scripts \ startup.py và đặt mã sau vào cuối của nó.
  4. Lưu và khởi động lại Npp để tải tập lệnh.

    from threading import Timer 
    
    def shutdownNppOnLastFileClosed(args): 
    
        def closeNpp(): 
         notepad.menuCommand(MENUCOMMAND.FILE_EXIT) 
    
        files = notepad.getFiles() 
        if len(files) == 2: 
         t = Timer(0.1, closeNpp) 
         t.start() 
    
    notepad.callback(shutdownNppOnLastFileClosed, [NOTIFICATION.FILEBEFORECLOSE]) 
    
2

Bản cập nhật mới nhất của Notepad ++ bao gồm các chức năng đóng ứng dụng sau khi đóng tab cuối cùng.

Để cập nhật Notepad ++, hãy chuyển đến?> Cập nhật Notepad ++ và làm theo hướng dẫn cài đặt.

Khi cập nhật hoàn tất, bạn sẽ có tùy chọn trong menu Cài đặt> Tùy chọn thành "Thoát khi đóng tab cuối cùng" (trong nhóm đầu vào Tab Tab).

+0

Kể từ Notepad ++ v7.5.3, việc sử dụng startup.py với PythonScript có một số vấn đề được sử dụng làm trình chỉnh sửa Git. Nếu một tập tin được đóng lại thông qua PythonScript, thì có vẻ như nó đã treo quá trình Git. Ví dụ notepad ++ trông trực quan, nhưng vẫn còn xung quanh theo Process Explorer. Sử dụng đề xuất của @ Sebastian làm việc cho tôi. – blitzvergnugen

Các vấn đề liên quan