Page 1 of 2
Замена TABs на Spaces и обратно?
Posted: Sat Jan 09, 2010 7:14 pm
by temp1111
Было бы замечательно иметь такую возможность. Масса форумов корежит вставляемые в топик исходники, если в них есть TABы, и напротив - редактировать исходники с пробелами вместо TABов - неудобно.
В ConTEXT такая фича есть - его пока и приходится для этого пользовать

(
Спасибо.
Posted: Sun Jan 10, 2010 7:07 pm
by FeyFre
temp1111 на форумах есть специальный тег code который ничего не корёжит. За то что его не используют - втык должны сделать модераторы.
А исправить можно с помощью обычной Замены. Заменяйте "<сколько ван нужно пробелов>" на "\t"
Posted: Thu Jan 14, 2010 7:11 pm
by temp1111
FeyFree, на форумах есть специальный тег code который корёжит
любой текст с шириной табов, отличной от 4:
Code: Select all
;== Initialization code =======================================================
reset:
outiw SP,RAMEND ; Initialize stack pointer
clr nul ; Initialize zero value holding register
rcall init_ports ; Initialize ports
rcall init_tmr1 ; Initialize Timer 1
rcall init_adc ; Initialize ADC
rcall init_uart ; Initialize UART
rcall init_lcd ; Initialize LCD
clr keyold ; Clear key debounce registers
clr keydeb ;
clr keyon ;
clr keytgl ;
ldi tmp,kdeb_ms ; Load key debounce timer
mov kdebtmr,tmp ; with predefined key debounce time value
clr stimer ; Clear software incremental timer
sei ; Enable interrupts
;#define debug
#ifdef debug
.listmac ; Turn listing macro expansion on
rjmp showkeys ; Show key debounce registers' bits on LCD
#endif
А вот как это выглядит с пробелами вместо табов:
Code: Select all
;== Initialization code =======================================================
reset:
outiw SP,RAMEND ; Initialize stack pointer
clr nul ; Initialize zero value holding register
rcall init_ports ; Initialize ports
rcall init_tmr1 ; Initialize Timer 1
rcall init_adc ; Initialize ADC
rcall init_uart ; Initialize UART
rcall init_lcd ; Initialize LCD
clr keyold ; Clear key debounce registers
clr keydeb ;
clr keyon ;
clr keytgl ;
ldi tmp,kdeb_ms ; Load key debounce timer
mov kdebtmr,tmp ; with predefined key debounce time value
clr stimer ; Clear software incremental timer
sei ; Enable interrupts
;#define debug
#ifdef debug
.listmac ; Turn listing macro expansion on
rjmp showkeys ; Show key debounce registers' bits on LCD
#endif
Еще есть Волга, которая впадает в Каспийское море, и есть учителя, которые знают все - типа вас. Также есть отдельные утилиты, которые такое преобразование делают - с clipboard и файлами - но я вовсе не об этом спрашивал. И отнюдь не у вас, особенно после прочтения вашего перла
"заменяйте сколько вам нужно пробелов на \t" 
Posted: Thu Jan 14, 2010 10:32 pm
by FeyFre
temp1111, думаю уже поняли что ответ "такой возможности сейчас нету", и раз уж вы такой крутой низкоуровневый программист, то думаю вам не составит труда самостоятельно написать скрипт к
плагину который сделает то что вам нужно, а не слушать меня "всезнающего учителя".
Posted: Fri Jan 15, 2010 12:44 am
by temp1111
Любезный, а я разве у вас лично что-нибудь спрашивал? Вы разве имеете какое-либо отношение к разработке и развитию AkelPad, или просто потрындеть решили? Найдите в таком случае себе более благодарную аудиторию, а то я, знаете ли, ламеров-всюду-затычек с детства не перевариваю.
"ПроходИте мимо - гостем будете"(с).
Posted: Fri Jan 15, 2010 7:59 am
by Fr0sT
temp1111
о великий Гуру, просвети погрязшего во мраке невежества, чем не угодила тебе фраза "заменяйте сколько вам нужно пробелов на \t" и каковы же твои истинные цели?
Posted: Fri Jan 15, 2010 9:52 am
by VladSh
temp1111
у вас, видимо, настроение плохое...
Люди /не без оснований/ думают /и даже почти уверены

/, что такая функция не будет добавлена в AkelPad, и поэтому предлагают хоть что-то для решения ВАШЕЙ проблемы; за это обычно говорят спасибо. А если совет не в тему, то просто молча проходят мимо.
P.S. Исходники могут быть откуда угодно, т.е. в них может быть разное количество пробелов, да в одном и том же исходнике может быть полный разброд с отступами - и такое, к сожалению, не редкость...
Posted: Fri Jan 15, 2010 10:36 am
by FeyFre
temp1111, любезный, создав здесь топик Вы спрашиваете у всех, кто пожелает ответить. Если Вам ответ не нравится - вы можете это высказать только мне в личку, а не в теме.
Если вы хотели спросить у конкретного человека - разработчика, то Вам нужно было бы писать ему в личку.
о великий Гуру, просвети погрязшего во мраке невежества, чем не угодила тебе фраза "заменяйте сколько вам нужно пробелов на \t" и каковы же твои истинные цели?
Fr0sT, спокойствие. Совет действительно немного корявый, и не совсем ясный.

Posted: Fri Jan 15, 2010 11:59 am
by temp1111
VladSh wrote:temp1111
у вас, видимо, настроение плохое...
Нормальное, рабочее
Исходники могут быть откуда угодно, т.е. в них может быть разное количество пробелов, да в одном и том же исходнике может быть полный разброд с отступами - и такое, к сожалению, не редкость...
Совершенно верно. И именно поэтому на ВСЕХ phpbb-driven форумах одно из наиболее частых сообщений - "йопрст, опять форумный движок все форматирование покоцал, ща попробую повторить..."
Я упомянул и редактор (и он не один) с такой фичей, и утилитки, прекрасно это делающие - ведь очевидно, что это востребовано многими, посему и существует. AkelPad является прекрасной и более чем достойной заменой дефолтному системному "блокноту", и одна из его важнейших возможностей - это интеллектуальный MDI-буфер для тестового контента.
Наличие ВСТРОЕННОЙ возможности Tabs<>Spaces однозначно улучшило бы его и без того изрядную и рациональную функциональность - как минимум с точки зрения многочисленной армии программистов, давно и успешно пользующейся этим замечательным инструментом.
Posted: Mon Jan 18, 2010 7:45 am
by Fr0sT
FeyFre wrote:Совет действительно немного корявый, и не совсем ясный.

Ну не знаю, по-моему, что может быть яснее... Ctrl-R, что: " ", на "\t", "Заменить всё". В отдельном инструменте смысла не вижу. Это ж придётся ещё и настройку делать, сколько пробелов заменять на один таб.
Posted: Sat Apr 03, 2010 4:22 am
by Instructor
temp1111
Замена табов на пробелы -
TabsToSpaces.js
Posted: Sat Apr 03, 2010 10:13 am
by okruzhor
Fr0sT wrote:Ну не знаю, по-моему, что может быть яснее... Ctrl-R, что: " ", на "\t", "Заменить всё". В отдельном инструменте смысла не вижу. Это ж придётся ещё и настройку делать, сколько пробелов заменять на один таб.
Внутри текста тоже возможны ряды пробелов , которые обычно надо уберечь от замены на табуляции . Тогда придётся менять в несколько приёмов , каждый раз используя нужное число пробелов после '\n' , например :
// 8 табуляций
^R
\n
\t\t\t\t\t\t\t\t
Заменить все
// 7 табуляций
^R
\n
\t\t\t\t\t\t\t
Заменить все
.....
Posted: Mon Apr 05, 2010 6:32 am
by Fr0sT
Макрос можно записать

Да, и у тебя там ошибка: заменить на
\n\t\t...
Posted: Wed Apr 07, 2010 9:46 pm
by temp1111
Спасибо!.. только вот что получается:
- выделяю фрагмент с табами под замену
- нажимаю hotkey, назначенный для TabsToSpaces
- получаю ошибку:
Script: c:\bla-bla\TabsToSpaces.js
Line: 29
Char: 7 [это начало строки SelCompliteLine(hWndEdit, nSelStart, nSelEnd);]
Error: Object expected
Code: 800A138F
Source: Microsoft JScript runtime error [WinXP SP2]
Пробовал заменить SelCompl
iteLine на SelCompl
eteLine, сочтя за описку, но результат тот же

Posted: Thu Apr 08, 2010 4:56 am
by Instructor
temp1111
Скопируйте скрипт полностью ничего не меняя. Опечатку исправил.