Làm thế nào để tôi vô tình tạo ra một không gian nghỉ trước khi mở nẹp xoăn?


20

Tôi ý thức đây là một câu hỏi lạ, và đây thậm chí có thể không phải là diễn đàn phù hợp để đăng nó. Nhưng điều này đã là một vấn đề trong nhiều năm.

Thỉnh thoảng, giả sử mỗi tháng một lần, khi tôi lập trình, tôi giới thiệu một không gian Không nghỉ thay vì một không gian thông thường, trước khi mở một cái nẹp xoăn.

Điều này xảy ra hãy nói khi tôi đang viết () {

Điều này dẫn đến lỗi lint bí ẩn. Mệnh đề CSS không áp dụng. Cho đến khi tôi nhớ điều này có thể là nó.

Theo như tôi biết, điều này chỉ xảy ra trong vim, nhưng vì nó là trình soạn thảo chính của tôi nên nó có thể chưa bao giờ xảy ra trong các phần mềm khác. Nhưng không ai trong số đồng nghiệp của tôi trong công việc cuối cùng của tôi gặp phải vấn đề đó, mặc dù họ sử dụng cùng bố trí bàn phím với tôi. Tôi là người duy nhất sử dụng vim thường xuyên, đó là lý do tại sao tôi mặc dù đăng bài ở đây ...

Điều này đã xảy ra với tôi ít nhất là trong Ubuntu 14.04, 16.04 và mac os x.

:set list không tiết lộ nó.

Tôi đang sử dụng bố trí bàn phím tiếng Pháp-canadien, nghĩa là ký tự dấu ngoặc được thực hiện bằng cách nhấn alt + `

Tôi rất mệt mỏi vì điều này gây ra vấn đề, nó không thường xuyên đến nỗi tôi cứ quên nó đi.

Nếu bạn không thể cho tôi biết lý do tại sao điều này tiếp tục xảy ra, một số loại cấu hình để làm nổi bật nhân vật đó theo một cách rõ ràng nào đó sẽ là một câu trả lời phù hợp và thực sự giúp ích cho vấn đề này.


Bạn có thể thay đổi các phím
bấm

Tào lao như thế này là lý do cuối cùng tôi đã chuyển bố cục của mình vĩnh viễn từ Thụy Điển sang Mỹ. Tôi có lẽ dành nhiều thời gian hơn để gõ tiếng Anh + C + Perl + Bash + Vim hơn là tôi gõ các chữ cái å, ä và ö vui nhộn của chúng tôi. Những người dễ dàng được sản xuất bằng cách sử dụng một phím soạn.
ống

Câu trả lời:


24

Những người khác đã cung cấp xung quanh công việc, nhưng vì lý do tại sao nó xảy ra, tôi cá là bạn đang vô tình nhấn Alt+ Space.

Tôi đang sử dụng Xubfox với bố cục bàn phím Phần Lan 105 phím, vì vậy đối với tôi, gõ {có nghĩa là nhấn AltGr+ 7. Tôi vừa thực hiện một thử nghiệm nhanh trong xfce4-terminal (trên dòng lệnh bash) và nhấn AltGr+ Spacethực sự tạo ra một không gian không ngắt (U + 00A0).

Tôi cá là những gì đang xảy ra là bạn đang nhấn Altphím để dự đoán việc gõ nẹp, và đôi khi điều đó xảy ra trước khi bạn thực sự nhấn phím cách, tạo ra một khoảng trắng không bị phá vỡ. Và vì nó trông giống hệt một không gian bình thường, bạn không nhận ra nó đã xảy ra trước khi một thứ gì đó bị phá vỡ một cách bí ẩn, khiến bạn khó nhận ra điều đó xảy ra và do đó cũng khó có thể bỏ thói quen đó.


Oooh tôi sẽ cố gắng làm việc này vào ngày mai tại nơi làm việc. Tôi luôn đặt một khoảng trống trước nẹp xoăn của mình, đôi khi tôi có thể chạm ngón tay vào phím shift quá sớm!
Sarumanatee

2
@Sarumanatee: trên linux bạn thực sự có thể vô hiệu hóa toàn bộ ký tự. Có lẽ trình quản lý bàn phím của Ubuntu thậm chí còn có một tùy chọn cho nó. Nếu không, bạn có thể tự điều chỉnh bản đồ bàn phím (đó là vấn đề xóa một dòng, trong hệ thống của tôi, sơ đồ phím sẽ là /usr/share/X11/xkb/symbols/us) sau khi kết thúc cuộc gọi setxkbmap ushoặc bất kỳ ngôn ngữ nào bạn muốn
unperson325680

@progo CÓ. Tôi đang sử dụng macos ngay bây giờ và sử dụng Karabiner để tinh chỉnh bố cục bàn phím vì phần dưới cùng bên trái của bàn phím của tôi là "fn", điều mà tôi tin là hoàn toàn ngu ngốc. Bạn đã truyền cảm hứng cho tôi để đăng ký tại đó và có một tùy chọn để thay đổi tất cả các không gian không phá vỡ thành không gian bình thường
Sarumanatee

Và tùy chọn đó xác nhận đề xuất của @Ilmari Karonen, vì tùy chọn karabiner đó hiển thị các lệnh để tạo nbsp: tùy chọn + dấu cách và tùy chọn + shift + dấu cách. Mặc dù hóa ra, cuối cùng nó thực sự không liên quan đến vim!
Sarumanatee

Ilmari Karonen đã đúng, vì vậy đây không phải là về lời giải thích mà chỉ để mô tả cách giải quyết của tôi. Tôi đã thêm một kết hợp cú pháp liên kết không gian không phá vỡ với nhóm tô sáng Lỗi, để nó khác biệt rõ ràng với không gian thông thường. Điều tương tự cũng xảy ra đối với dấu gạch nối mềm và dấu gạch nối không phá vỡ (được liên kết với hai nhóm nổi bật khác nhau vì đôi khi tôi sử dụng tất cả các chủ ý này trong văn bản trái ngược với mã).
bpj

19

Bạn có thể thêm một chế độ tự động thay thế các không gian không phá vỡ bằng các khoảng trống thông thường khi lưu các loại tệp cụ thể, ví dụ: bằng cách đặt một cái gì đó như thế này trong vimrc của bạn:

augroup RemoveSpaces
  autocmd!
  autocmd BufWritePre *.css silent! :%s/\%u00A0/ /g
augroup end

Bạn có thể điều chỉnh nó bằng cách thêm nhiều loại tệp hoặc đặt dấu và quay lại nó sau thao tác thay thế vì nếu không, bạn sẽ bị đẩy về đầu dòng cuối cùng nơi thực hiện thay thế.


Ohh đó là khá thông minh. Tôi không ngại bị đẩy vào những nơi vì điều đó thực sự không xảy ra thường xuyên, và nó ít gây phiền nhiễu hơn nhiều so với việc dành thời gian để gỡ lỗi mọi thứ!
Sarumanatee

13

Các 'listchars'tùy chọn cung cấp một phương tiện để làm cho 'list'không gian hiển thị không bị phá hủy. Nó không được đặt theo mặc định, vì vậy bạn có thể muốn thêm nó.

set listchars+=nbsp:‗

Điều đó thực sự giúp. Tôi nghĩ rằng tôi sẽ cố gắng tìm ra cách làm nổi bật mọi lúc mọi nơi, để thử và bắt lấy nó khi tôi đang gõ nó: o
Sarumanatee

2
@Sarumanatee Nếu bạn thêm dòng vào vimrcnó, trên thực tế, sẽ làm nổi bật chúng khi bạn nhập chúng.
Tumbler41

1

vâng, đó có lẽ là alt + không gian, xảy ra với tôi rất nhiều khi tôi sử dụng toán tử đường ống:

cat xyz.txt | grep abc

nếu bạn giữ phím alt quá lâu, nó sẽ tạo ra một khoảng trống không bị phá vỡ sau khi đường ống và bash sẽ cố gắng tìm lệnh "grep" và sau đó cho bạn biết rằng grep không được tìm thấy ..

trên macos có một số mẹo để thay đổi sơ đồ bàn phím, vì vậy mỗi khi bạn chèn một khoảng trắng không bị phá vỡ, nó sẽ được chuyển đổi / thay thế bằng một quy tắc thông thường. theo như tôi nhớ, sơ đồ bàn phím được thay đổi cho toàn bộ bàn phím, vì vậy nó khắc phục vấn đề của bạn trong tất cả các ứng dụng.


alt + không gian không liên quan gì đến Vim. Theo mặc định (như trong: không có ánh xạ người dùng), trên hầu hết các hệ thống alt + không gian sẽ tạo ra một số lối thoát sẽ chứa Esc, sẽ thoát khỏi chế độ chèn trong Vim. Và đó là một cơn sốt. Không gian không thể phá vỡ là kết quả của một số bus đầu vào hoặc trình quản lý đầu vào trên hệ thống của bạn, Vim / Gvim không bao giờ nhìn thấy nó.
grochmal
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.