2012-10-17 15 views
25

Uczę Markdown, a przy użyciu pakietu Python Markdown, który często zwraca następujący gdy próbuję przekonwertować tekst, który został wklejony z sieci:Czy możliwe jest pokazanie dokładnej pozycji w Sublime Text 2?

UnicodeEncodeError: 'ascii' codec can't encode character u'\u201c' in 
position 1611: ordinal not in range(128) 

Na dnie mojego edytora I aktualnie zobaczyć:

COMMAND MODE, Line X, Column Y 

Czy jest ustawienie w Sublime Text 2, który pokaże pełną pozycji (jak w 1611 w powyższym przykładzie) w każdym czasie, aby można było szybko znaleźć zły charakter?

Odpowiedz

52

Można zrobić prosty skrypt Pythona, aby to zrobić.

1. Zapisz ten kod do folderu użytkownika jako characterCounter.py (Preferences > Browse Packages > User):

import sublime, sublime_plugin 

class PositionListener(sublime_plugin.EventListener): 
    def on_selection_modified(self,view): 
    text = "Position: " 
    sels = view.sel() 
    for s in sels: 
     text += " " + str(s.begin()) 
     if not s.empty(): 
      text += "-" + str(s.end()) + " " 
    view.set_status('exact_pos', text) 

2. Następnie ponownie Sublime Text mieć ona załadowana.

+0

Dziękujemy za kod. Naprawiłem trochę. Gdy używasz wielu kursorów bez wybierania czegokolwiek, nie ma miejsca: http://hastebin.com/cejosemeka.py – Ticksy

+0

Głupie pytanie: w jaki sposób to włączasz? Zapisałem scenariusz, ale Sublime wydaje się nie wiedzieć, że tam jest. Dzięki. – gotofritz

+0

@gotofritz Możesz zobaczyć "Położenie: 123" w lewym dolnym rogu SublimeText, jeśli skopiuj ten skrypt do pliku .py i zapisz go w folderze otwartym przez Preferencje> Przeglądaj pakiety> Użytkownik –