Cắt bỏ khoảng trắng ở cuối trong Xcode


103

Có cách nào để buộc Xcode cắt khoảng trắng ở cuối khi tôi lưu tệp không?

Tôi đang sử dụng phiên bản 3.1.3 nếu điều đó quan trọng.

Câu trả lời:


22

Bạn có thể tạo một tập lệnh và liên kết nó với một phím tắt:

  • Chọn Menu Tập lệnh> Chỉnh sửa Tập lệnh Người dùng ...
  • Nhấn nút + và chọn New Shell Script
  • Đặt cho nó một cái tên như "Strip Trailing Spaces" và đặt cho nó một phím tắt như ⌃⇧R.
  • Đặt Đầu vào thành "Lựa chọn" và Đầu ra thành "Thay thế lựa chọn"

Sau đó nhập tập lệnh sau:

#!/usr/bin/perl

while (<>) {
    s/\s+$//;
    print "$_\n";
}

9
À, vâng, rất đơn giản ... Cảm ơn. Có cách nào để kết hợp điều này với lưu tệp không?
Alexander Gladysh

Để làm việc trên toàn bộ tệp (có thể là điều bạn muốn làm), hãy đặt Đầu vào thành "Toàn bộ Tài liệu" và Đầu ra thành "Thay thế Nội dung Tài liệu". Tuy nhiên, điều này để lại con trỏ ở cuối tệp.
SMBiggs

7
Câu trả lời này đã lỗi thời kể từ Xcode 4.4. Hãy xem câu trả lời của Martin Stolz.
Basil Bourque,

239

Bắt đầu từ Xcode 4.4, các khoảng trắng sẽ được tự động cắt theo mặc định, trừ khi dòng là tất cả khoảng trắng. Bạn cũng có thể kích hoạt Including whitespace-only linesđể khắc phục điều này, theo mặc định, tính năng này không hoạt động.

Đi đến Xcode > Preferences > Text Editing > While editing

Ảnh chụp màn hình tùy chọn Xcode


15
Cài đặt này chỉ cắt bớt khoảng trắng ở cuối dòng sau khi con trỏ rời khỏi dòng đó. Vì vậy, nó vẫn cho phép bạn lưu tệp có một dòng khoảng trắng ở cuối, nếu con trỏ nằm trên dòng đó khi lưu.
ma11hew28

7
Tại sao điều này không phải là mặc định? Nếu bạn có một tệp hiện có với khoảng trắng ở cuối, chỉ cần đánh dấu tất cả, cắt, lưu, dán, lưu.
Friederbluemle,

Điều này cần ghi đè giải pháp tập lệnh hacky trên câu trả lời này.
Urda

7
Sử dụng + này ctrl-itrên tất cả các file đang tồn tại sẽ chăm sóc của khoảng trắng trailing
Kirualex

24

Tôi đang sử dụng Trình cắm Xcode của Hộp công cụ Google dành cho Mac , nó thêm thông số "Chính xác khoảng trắng khi lưu" để cắt bỏ khoảng trắng cuối khi lưu. Tôi đã bỏ lỡ điều đó rất nhiều từ emacs.


1
Tôi cũng đang sử dụng plugin này. Nó làm những gì nó nói.
Nathan

Sẽ là hoàn hảo, rất tiếc là nó không hoạt động trên Xcode 4 vào lúc này :(
deepwell.

6
Bây giờ chúng tôi có một số hỗ trợ Xcode 4 cơ bản. Xem chúng tôi plugin mới
dmaclach

1
Tôi có thể tìm thông số "Khoảng trắng chính xác khi lưu" ở đâu?
jhasse

Cuối cùng tôi đã cố gắng để GTM hoạt động trên Xcode 4.3.2, nhưng hướng dẫn cài đặt từ GTM wiki dường như không hợp lệ. Thay vì đặt .xcplugin vào ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins(theo hướng dẫn của Google), tôi phải đặt nó vào /Applications/Xcode.app/Contents/PlugInsvà khởi động lại Xcode.
Kristofer Sommestad

3

Đối với Xcode 8, tôi đã cài đặt plug-in Xcode bơi , để định dạng mã Swift, loại bỏ tất cả các khoảng trắng ở cuối và các dòng chỉ có khoảng trắng.

Phương pháp cài đặt

  1. Cài đặt qua homebrew-cask:

    brew cask install swimat
  2. Tải xuống ứng dụng trực tiếp:
    https://github.com/Jintin/Swimat/releases/download/v1.3.5/Swimat.zip

  3. Sao chép extensionnhánh và lưu trữ vào Mac App.

Sử dụng

Sau khi cài đặt, bạn có thể chạy Swimat trong Xcode thông qua Editor -> Swimat -> Format.


công cụ này không loại bỏ các dòng trống.
Mehdico

1

Điều này không thể thực hiện được trong Xcode 3.2

Biên tập:

Tôi đã trả lời câu hỏi này rất ngắn gọn vì không có cách nào để làm điều này đúng .

Tất nhiên, vì nó là phần mềm, bạn có thể làm bất cứ điều gì: Bắt đầu với các bản hack Trình quản lý đầu vào hoặc các cách chèn mã khác để đánh chặn bàn phím trên toàn hệ thống, bạn có thể thay đổi hệ thống cục bộ của mình để làm bất cứ điều gì bất cứ lúc nào. Bạn có thể thiết lập hành động thư mục Applescript (arrgh) hoặc sử dụng quỷ khởi động và cơ sở FSEvents để xem các tệp mã nguồn của bạn.

Bạn cũng có thể thêm một vài tập lệnh vào Xcode (tập lệnh người dùng trong menu, các giai đoạn tập lệnh trong mục tiêu, Hành động tùy chỉnh trong trình tổ chức, thậm chí có khả năng rất khó xác định là tập lệnh khởi động), nhưng tất cả các giải pháp này đều thiếu sót, vì nó liên quan đến người dùng hoặc thiết lập tùy chỉnh trên máy của người dùng.

Tôi không biết về một giải pháp đơn giản hoạt động sau khi kiểm tra một dự án từ SCM. Tôi tin rằng cần có điều này và các tập lệnh tùy chỉnh tương tự, vì vậy tôi đã gửi lỗi (radar 7203835, "Tính năng: nhiều trình kích hoạt tập lệnh người dùng hơn trong quy trình làm việc Xcode"). Tôi chưa nhận được bất kỳ phản hồi nào.

Đây là toàn bộ nội dung của mục radar:

Sẽ rất hữu ích nếu có nhiều nơi hơn để chạy các tập lệnh trong Xcode.

Ví dụ:

  1. Tập lệnh tạo trước Các tập lệnh tạo
    trước có thể được sử dụng để xây dựng các điều kiện tiên quyết như tệp * .xcconfig hoặc tiêu đề config.h. Điều này không thể xảy ra với "Giai đoạn xây dựng tập lệnh chạy", vì theo dõi sự phụ thuộc diễn ra trước khi bất kỳ giai đoạn xây dựng nào được kích hoạt.

  2. Đăng các tập lệnh xây dựng
    Tương tự như trên, nhưng chạy sau khi xây dựng xong (bao gồm cả ký mã, v.v.). Hữu ích cho việc đóng gói bổ sung, kiểm tra tính hợp lệ, v.v.

  3. Trước / Đăng các tập lệnh Cam kết SCM.
    Để kiểm tra tính toàn vẹn của dự án.

  4. Tập lệnh Lưu trước / Đăng tệp.
    Để kiểm tra / thay đổi tệp trước khi lưu. Ví dụ: chạy bộ làm đẹp cody

  5. Hành động dự án tùy chỉnh.
    Tôi biết về khả năng xác định các hành động tùy ý của người tổ chức. Nhưng đây là một tính năng cho mỗi người dùng (không phải là một phần của dự án). Tôi muốn xác định các hành động như xây dựng hoặc dọn dẹp hiển thị trong menu xây dựng và đó là một phần của dự án.


Chỉnh sửa để câu trả lời tại sao cách giải quyết được thỏa mãn trong trường hợp này
Nikolai Ruhe

2
Cảm ơn. Mặc dù tôi ủng hộ việc thực hiện nó theo cách thích hợp, nhưng tôi sẽ giải quyết mọi vấn đề về hành vi tấn công không quá phức tạp. Những khoảng trắng thừa đó thực sự rất khó chịu.
Alexander Gladysh


0

Cách tốt nhất và dễ dàng mà không cần sử dụng script, hack và hơn thế nữa. Chỉ cần đi tới Tìm và Thay thế Cách tốt nhất và dễ dàng mà không cần sử dụng tập lệnh, hack và nhiều hơn nữa. Chỉ cần vào Find And Replace và nhấn "alt / option + space" và nhấn nút "space" trong thanh thay thế và sau đó nhấp vào Replace all. Nó sẽ thay thế các khoảng trắng bằng các khoảng trắng bình thường và cảnh báo / lỗi sẽ biến mất !!


1
Điều này chỉ loại bỏ các khoảng trắng ở cuối như được yêu cầu trong câu hỏi?
Blastfurnace
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.