alexriz

Sublime Text 2/3

Recommended Posts

Sublime Text 2/3


Кроссплатформенный текстовый редактор для разработчиков, написанный на C++, а так же Python API для написания плагинов. Поддерживает огромное количество языков программирования "с коробки".
В этой теме первый пост будет содержать набор всевозможных полезностей связанных с ST2, оставленных пользователями в обсуждениях, а так же ряд вопросов которые требуют решения.

Работа с SFTP и системой проектирования.


Создаем директорию у себя, где вам удобно. Это будет папка для синхронизации ftp.
Перетаскиваем папку в ST2, в левой панели жмем на папке ПКМ=>SFTP/FTP=>Map to Remote...
В открывшемся файле конфигурации настраиваем подключение.
"type": "ftp"
"upload_on_save": true
"host": ip/host
"user": "username"
"password" : "password"

Настройка самого плагина SFTP следуем пути: Preferences=>Package Settings=>SFTP=>Settigs Default
Я для себя поменял параметр hide_output_panel, на 0 (по-умолчанию - 1), тем самым запретил скрытие консольной панели ftp, которая находится внизу. Если данный параметр будет стоять в состоянии 1, то панель будет автоматически скрываться, но при каждом обращении к серверу, будет появляться на время, лично мне это не очень понравилось.

Итогом этих манипуляций мы получаем слева панель с деревом файлов, кликаем ПКМ в этой панели и выбираем SFTP/FTP=>Sync Remote -> Local... и вуаля мы видим, как красиво происходит синхронизация с сервером, и файлы загружаются во временную папку и появляются в проекте. И вот мы получили, автокомплит, авто-сохранение с сервером.



Подключаемся к серверу по sftp с помощью ST2 и плагина SFTP


Настройка сервера (на примере ArchLinux):
Заходим под root
Открываем sshd_config, по пути /etc/sshd/sshd_config

Раскомментируем параметры
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

Сохранем именения и перезапускаем демон sshd коммандой
# /etc/rc.d/sshd restart

Логинимся под ограниченным пользователем, который будет работать с ssh.
Создаем приватный и публичный ключи.
$ ssh-keygen -t rsa -b 2048 -f ~/.ssh/id_rsa
Переходим в директорию ~/.ssh/
$ cd ~/.ssh/
В этой директории будут лежать свеже испеченные приватный и публичный ключи
для авторизации по ssh id_rsa и id_rsa.pub.
Создадим authorized_keys:
$ cat id_rsa.pub >> authorized_keys
Осталось только расставить права доступа:
$ cd ../
$ chmod 700 .ssh
$ cd .ssh
$ chmod 600 authorized_keys

Все сервер готов для авторизации по rsa ключу.

Подготовка к подключению через Sublime Text 2:
Выкачиваем с сервера публичный и приватный ключи (id_rsa и id_rsa.pub).
Далее только для Windows:
Скачиваем программку Puttygen отсюда http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Открываем Puttygen загружаем приватный ключ id_rsa в меню Conversions=>Import key
Загрузится ключ и активируются кнопки save public key и save private key.
Если при генерации ключа на сервере вы указали passphrase, то в puttygen так же их указываем в соответствующих полях.
Нажимаем save private key и сохраняем с именем id_rsa.ppk
Вот у нас готов ключ для авторизации в ОС Windows. Это необходимо так как в Windows версии
авторизация происходит через утилиту psftp, а она принимает ключи формата putty.

Теперь собственно авторизация из Sublime Text 2:
Создаем директорию у себя где вам удобно. Это будет папка для синхронизации sftp.
Для удобства закинем наши ключи в эту папку id_rsa.pub и id_rsa.ppk.
Закидываем папку в ST2, в левой панели жмем на папке ПКМ=>SFTP/FTP=>Map to Remote...
В открывшемся файле конфигурации настраиваем подключение.
"type": "sftp"
"upload_on_save": true
"host": ip/host
"user": "username"
"port": "22"
"ssh_key_file": "x:\\путь_к_файлу\\id_rsa.ppk"

Особое внимание! Виндовые слеши нужно дополнительно слешировать \\ !

Вот и все пробуем подключится ПКМ=>SFTP/FTP=>Browse Remote...



Интересный обзор ST2 от ablay2009, дополнение от меня, если в ftp не хотите выгружать файл в ручную, то в конфиге подключения параметр "upload_on_save" переводим в true. Так при сохранении файл автоматически загрузится на сервер.

Полезные ссылки:
Sublim Text 2 Docs
Список плагинов
Описание полезных расширений от net.tutsplus.com
Список настроек с описанием на русском
Use Dropbox to store your Sublime Text 2 settings, themes and plugins

Отключаем ctrl+wheel

FAQ
Q: Где скачать Sublime Text 2?
A: Sublime Text 2 dev актуальная версия 2216
Sublime Text 2.0.1 версия 2217

Q: Как поставить плагины?
A: Управление пакетами. Не много о Zen Coding в ST2

Q: Не корректно работают сниппеты Zen Coding в CSS
A: Конфликтуют встроенные сниппеты со сниппетами ZC, чтобы отключить встроенные сниппеты, заходим по пути в win7 c:\Users\имя пользователя\AppData\Roaming\Sublime Text 2\Packages\CSS\ и удаляем, а лучше просто переносим куда-то все папки которые там есть, файлы которые лежат в корне этой папки оставляем.

Q: Как сделать чтобы выделенное слово подсвечивалось по всему документу, как в Notepad++?
A: Двойной клик по слову, выделяет его, и выделяет рамкой все такие же слова в коде.
Как сделать в точности как в NPP пока не известно.

Q: Как сделать дублирование участка кода как в NPP по CTRL+D?
A: Ctrl + Shift + D
Дублируется либо линия, либо выделенный участок кода. Можно поменять в Key Bindings { "keys": ["ctrl+d"], "command": "duplicate_line" }

Q: Не хватает возможности выделения текста колонкой, как в NPP с клавишей Alt.
A: Нажимаем среднюю кнопку мыши и тянем по коду, выделяется колонка.
(alt + тянем мышь с ЛКМ) в выделенном участке отменяет выделение.

Q: Как включить отображение непечатаемых символов?
A: В Preferences=>Settings - Default . Параметр draw_white_space, отвечает за отрисовку непечатаемых символов, по-умолчанию стоит selection - при выделении, можно установить all - всегда или none - никогда

Q: Как сделать подсветку всей линии, в месте где находится курсор как в npp?
A: В Settings - Default параметр highlight_line устанавливаем в true.

Q: Не работает функция Install Package. В настройках есть, но когда выбираю - нет никакого списка. (Windows)
A: В пути к папке AppData присутствуют русские буквы. Это может быть подписана папка пользователя на русском, или папка "Users" названа "Пользователи", или оба варианта сразу. Необходимо избавится от русских названий.

 

Переименование папки учетной записи
1. Создайте вторую уч. запись.
2. Дайте ей админские привилегии.
3. Загрузитесь под ней.
4. Переименуйте каталог профиля старой учётки в соответствии с её названием.
5. Под ключом реестра [HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList] найдите ключ, под которым Reg_Expand_Sz-параметр "ProfileImagePath" указывает на старую учётку (судя по Вашему описанию его значение должно быть "C:\Users\User" (при условии, что папка пользовательских профилей - "C:\Users")).
6. Переименуйте в значении этого параметра слово "User" в соответствии с новым названием учётки.
7. Загрузитесь под своей законной учёткой.



Q: Какой аналог плагина MIME Tools из npp есть в ST2?
A:

Q: Как сделать подсветку линии колонки как в npp (Конфигурация=>Разное=>Подсветка совпадающих тегов=>Разрешить)?
A: draw_indent_guides и indent_guide_options

Q: Как сделать Open Folder в том же окне редактора?
A:

Share this post


Link to post
Share on other sites

Как работает Sublime Alignment? Установил плагин с помощью Package Control, выделаю код:

            <ul>
<li><a href="#">About Us</a></li>
<li><a href="#">Services</a></li>
<li><a href="#">Products</a></li>
<li><a href="#">Solutions</a></li>
<li><a href="#">Price List</a></li>
<li><a href="#">Contact</a></li>
<li><a href="#">FAQ</a></li>
</ul>

Нажимаю ctr+alt+a (как написали разработчики тут) и ничего не происходит.

Share this post


Link to post
Share on other sites

У меня работает, но он выравнивает, по самой дальней строке, то есть этот плагин не форматирует код по правилам вложенности, а просто выделенные места по самой дальней строке в колоночку.

Из такого


<?php
$_config['emails']['smtp'] = array(
'host' => 'smtp.gmail.com',
'auth' => 'login',
'ssl' => 'tls',
'port' => 587,
'username' => '...',
'password' => '...',
'forceRecipient' => '...@...',
);
?>

В такой


<?php
$_config['emails']['smtp'] = array(
'host' => 'smtp.gmail.com',
'auth' => 'login',
'ssl' => 'tls',
'port' => 587,
'username' => '...',
'password' => '...',
'forceRecipient' => '...@...',
);
?>

Share this post


Link to post
Share on other sites

Нашел что-то подобное Reformat Code в WebStorm. Тут сам плагин или можно вписать в Package Control - Tag. Ctrl + alt + f для форматировки html кода.

Кто-то настроил нормально автокомплит css свойств? Если нажать Ctrl + space и выбрать допустим свойство height, то редактор напишет просто height. Если после этого еще раз нажать Ctrl+space и снова выбрать heigh то он добавит : и ; Хотелось бы что бы сразу ставил : ;

Edited by ShootingStar

Share this post


Link to post
Share on other sites

А на последние три вопроса надо ответы или так и задумано что на них нет ответа?

Share this post


Link to post
Share on other sites

Можно еще дописать для настроек SFTP, что в host можно указывать так же и айпишник вместо имени сервера.

Share this post


Link to post
Share on other sites

А на последние три вопроса надо ответы или так и задумано что на них нет ответа?

Да нужны ответы. На них пока нет ответа просто. Может это как-то иначе оформить, не знаю...

Можно еще дописать для настроек SFTP, что в host можно указывать так же и айпишник вместо имени сервера.

По идее очевидно... Но это для меня ок, допишу.

Share this post


Link to post
Share on other sites
Q: Не хватает возможности выделения текста колонкой, как в NPP с клавишей Alt.

A: http://www.sublimetext.com/docs/2/column_selection.html

У меня из того списка работает все кроме, выделение через ALT :unsure: , или там нужно, что-то до устанавливать?

Share this post


Link to post
Share on other sites

Поставил dev версию.

И немного разочаровался. Зачем делать сглаживание шрифта отличное от системного?

Я полностью убираю ClearType, мне так удобнее воспринимать текст. И тут такой подвох.

Выделение колонок работает, подсвечивание(обрамление) совпадений с выделенным словом вполне устраивает.

Share this post


Link to post
Share on other sites

В статье у ablay2009, есть вариант с созданием специальной папки для ftp, и маппинга в нее удаленной директории. Вопреки предупреждениям, провел адовый эксперимент, и сделал полную синхронизацию своего сервера в локальной сети (9 хостов, 180Мб данных). Пришлось прилично подождать, но все прошло гладко. Единственное, в настройках подключения, я поменял параметр "upload_on_save" на true, тем самым избавив себя от необходимости в ручную отправлять файл на сервер. Теперь при сохранении файла, он автоматом загружается на сервер.

Выделение колонок работает, подсвечивание(обрамление) совпадений с выделенным словом вполне устраивает.

Выделение колонок, это то что через alt ты спрашивал?

Share this post


Link to post
Share on other sites

Q: Как сделать дублирование участка кода как в NPP по CTRL+D?

A: Ctrl + Shift + D

Так в винде. Дублируется либо линия, либо выделенный участок кода

Выделение колонок работает, подсвечивание(обрамление) совпадений с выделенным словом вполне устраивает.

Выделение колонок, это то что через alt ты спрашивал?

Да, это то что нужно.

Share this post


Link to post
Share on other sites

Q: Как сделать дублирование участка кода как в NPP по CTRL+D?

A: Ctrl + Shift + D

Так в винде. Дублируется либо линия, либо выделенный участок кода

Спасибо добавил в первый пост.

Выделение колонок работает, подсвечивание(обрамление) совпадений с выделенным словом вполне устраивает.

Выделение колонок, это то что через alt ты спрашивал?

Да, это то что нужно.

Странно у меня не работает, даже на чистом...

upd: по нажатию средней кнопки мыши, получается выделение подобное как с atl в npp

Share this post


Link to post
Share on other sites

я поменял параметр "upload_on_save" на true, тем самым избавив себя от необходимости в ручную отправлять файл на сервер. Теперь при сохранении файла, он автоматом загружается на сервер.

Спасибо, добавил в статью.

Странно у меня не работает, даже на чистом...

И правильно делает, alt + выделение - это отмена выделения выделенного участка :) Т.е. мы сперва выделили участок кода, а потом решили не выделять какую то часть выделенного ранее.

Share this post


Link to post
Share on other sites

Q: Как сделать дублирование участка кода как в NPP по CTRL+D?

A: Ctrl + Shift + D

Дублируется либо линия, либо выделенный участок кода.

В Key Bindings можно сделать вот так и будет работать на Ctrl+D

{ "keys": ["ctrl+d"], "command": "duplicate_line" },

Q: Как включить отображение непечатаемых символов?

A:

Есть вот такая настройка

"draw_white_space": "selection", которая говорит о том что надо показывать пробельные символы, если текст выделен. Можно ставить none или all, чтобы изменить это поведение. В принципе, меня полностью устраивает вариант selection, так как посмотреть какие пробелы есть надо не так часто, и выделить кусок не сложно

Share this post


Link to post
Share on other sites

"draw_white_space": "selection", которая говорит о том что надо показывать пробельные символы, если текст выделен. Можно ставить none или all, чтобы изменить это поведение. В принципе, меня полностью устраивает вариант selection, так как посмотреть какие пробелы есть надо не так часто, и выделить кусок не сложно

Не знаю хорошо или плохо, но я пользуюсь не пробелами, а табуляцией для отбивки кода.

Нелюблю когда код в перемешку табопробельный. А если не отображаются пробелы табы, то код такой и будет.

Share this post


Link to post
Share on other sites

"draw_white_space": "selection", которая говорит о том что надо показывать пробельные символы, если текст выделен. Можно ставить none или all, чтобы изменить это поведение. В принципе, меня полностью устраивает вариант selection, так как посмотреть какие пробелы есть надо не так часто, и выделить кусок не сложно

Не знаю хорошо или плохо, но я пользуюсь не пробелами, а табуляцией для отбивки кода.

Нелюблю когда код в перемешку табопробельный. А если не отображаются пробелы табы, то код такой и будет.

Я тоже считаю что надо использовать табы, а не пробелы. Но стандарты кода на питоне говорят что надо использовать 4 пробела для отбивки и ничего с этим уже не поделать.

Share this post


Link to post
Share on other sites

Я тоже табы использую, мне пробелами не удобно абсолютно. Но в редакторе и пробелы и табы подсвечиваются.

Share this post


Link to post
Share on other sites

У меня, кстати, вот вопрос возник — может, кто сталкивался. Есть какие-то файлы, которые я открываю через файловый менеджер «Open with Sublime Text 2», то файлы открываются не в уже существующем окне, а в новом. Ну и если делать «Open Folder» в редакторе, то тоже открывается новое окно, а не директория открывается в том же окне, что мне кажется более логичным. Использую Ubuntu 10.04 в стандартной комплектации.

Share this post


Link to post
Share on other sites

У меня на Win7 тоже Open Folder открывает новое окно. А если просто затаскивать папку, то можно открыть в том же окне в левой панели. Что-то я настроек открытия не нашел

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Member Statistics

    46,240
    Total Members
    3,128
    Most Online
    moiviknA
    Newest Member
    moiviknA
    Joined
  • Recently Browsing   0 members

    No registered users viewing this page.