Премини към съдържанието
  • Добре дошли!

    Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

    Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

     

Текстови редактори в Линукс, въпроси, решения


ivoarch

Препоръчан отговор

1. Като за наченаещ и не само, ти препоръчвам следните плъгини.

 

Първо, незнам от къде си инсталираш модота за емакс?

 

Аз ползвам Melpa , но може да разгледаш и други..

(add-to-list 'package-archives			 '("melpa" . "http://melpa.milkbox.net/packages/") t)

- autocomplete - това го знаеш.

- smex - M-x подобрение което ще те улесни доста.

- recentf - Листа на предишно отворени файлове и не само..

- flycheck - Проверява з агрешки във синтексиса.

- още неколко тук

 

Също може да погледнеш специално за python > тук , ако не искаш всичко това, може да разгледаш, кои модота се ползват, и да инсталираш некое което ти трябва от Melpa със M-x Package-install.

 

2.  Бъфери

 

Покажи бъферите които са отворени

 

C-x C-b или със M-x list-buffers

 

Също може да ползваш и ibuffer менюто, ето така: M-x ibuffer

 

3.  Затваряне на бъфери

 

C-x k име на бъфера

също M-x kill-buffer

 

Погледни добре тук

 

За w3m, не мога да ти кажа кой знае какво, не го ползвам. Но едвали е толкоз трудно,трябва само да прочетеш, как се работи с него и така.

 

Conkeror - А ми той не се инсталира във емакс, само се настройва като default browser, така емакс го ползва и изпълнява некой команди във conkeror. Иначе е отделен броузер който ползва емакс клавишни комбинаций, и е доста удобен за работа ако си свикнал на емакс начина.

 

Погледни тук , ако замениш Conkeror със Firefox или W3m ще ти върши същата работа. Но аз съм избрал conkeror, защото това е броузера който си ползвам.

 

Друго, един път заребиш ли се към емакс. нема отърване :)

 

Моята конфиг тук .

Линк към коментара
Сподели в други сайтове

Какво е Емакс?

--------------------------------------------------------------------------------------------------------------------------------------------

Операционна система дегизирана като текстов редактор, вървяща на всякакво "желязо" GNU/Linux, BSD-та, Winblows, Solaris, Plan 9… опасна работа! ~ Извадка от @m00natic

 

- Под дегизацията на текстов редактор!

(Анализ) source кода на емакс, използвайки sloccount .

 

sloccount emacs:

Totals grouped by language (dominant language first):
lisp:       1068797 (77.75%)
ansic:       280312 (20.39%)
objc:         15002 (1.09%)
sh:            6263 (0.46%)
perl:          1277 (0.09%)
pascal:        1010 (0.07%)
cs:             770 (0.06%)
cpp:            528 (0.04%)
awk:            477 (0.03%)
ruby:           257 (0.02%)
java:            27 (0.00%)

 

78% са написани на EmacsLisp (някъде около 1 милион линий год).

20% от source кода на емакс, са написaни на C, (някъде около 280 000 линий код) .

плус още...

 

Сега още ли смятате емакс, за обикновен текстов редактор?

 

-------------------------------------------------------------------------------------------------------------------------------------------

Какво е Buffer?

-------------------------------------------------------------------------------------------------------------------------------------------

Е нещото което съдържа текста, който редактираме.

Всеки път кoгато се отваря нов файл, се създава и нов buffer със името нa файла.

 

Най важните команди са:

 

(find-file) C-x C-f : използва се, за да заредите/намерите даден файл.

(switch-to-buffer) C-x b : използва се, за да се движите между бъферите.

(save-buffer) C-x C-s : използва се, за да запазите съдържанието на един бъфер във един файл.

(rename-file) : използва се, за да смените името на един бъфер.

 

--------------------------------------------------------------------------------------------------------------------------------------------

Какво е Window?

--------------------------------------------------------------------------------------------------------------------------------------------

Един window във емакс е региона, който съдържа buffer и modeline.

 

Работа със множество отворени прозорци:

 

(delete-window) C-x 0 : затваря текущият прозорец/window.
(delete-other-windows) C-x 1 : затваря всичkи прoзoрци, с изклучение на текущият прозорец/window.
(split-window-below) C-x 2 : разделя текущият прoзорец вертикално във два хоризонтални прозореца/windows.
(split-window-right) C-x 3 : разделя текущият прoзорец хоризонтално във два вертикални прозореца/windows.
(other-window) C-x o : избери друг прозорец/window.

 

--------------------------------------------------------------------------------------------------------------------------------------------

Какво е Frame?

--------------------------------------------------------------------------------------------------------------------------------------------

Не e  нищо повече от прозореца на Gui.

 

--------------------------------------------------------------------------------------------------------------------------------------------

Какво е ModeLine?

--------------------------------------------------------------------------------------------------------------------------------------------

Е линията кoято се поевява, най долу на прозореца/window. Садържа полезна информация за буфера показан в прозореца/window, включително неговото име и режим на работа.

 

--------------------------------------------------------------------------------------------------------------------------------------------

Снимка?

--------------------------------------------------------------------------------------------------------------------------------------------

 

Публикувано изображение

 

(+18) Emacs Porn - без гащи!

 

--------------------------------------------------------------------------------------------------------------------------------------------

Клавиши?

--------------------------------------------------------------------------------------------------------------------------------------------

Има двa важни клавиша, които трябва да знаем.

 

Meta : Това е калвиша Alt ,но може да бъде заменен със друг (на пример със windows клавиша). Доста често ще срещата meta клавиша, да се изписва съкратена ето така "M", пример "M-x" (meta key x key) комбинация, или <Alt> - x.

 

Control : Това е клавиша Ctrl, и също като клавиша meta , ще гo срещаме доста често, да се изписва съкратено ето така "C",  пример "C-f" (ctrl key f key) комбинация, или <ctrl> - f.

 

Три важни клавишни комбинаций.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~

(help-for-help) C-h C-h : Достъп до помощ за емaкс.

(quit) C-g : Спира текущата операция.

(run-command) M-x : Позволява да изпълните, всякакви команди във емакс.

 

Клавиши за навигация.

~~~~~~~~~~~~~~~~~~~~~

Ако учите емакс, трябва да свиквате с правилните клавиши за навигация, или преминеването към определено място в рамките на текста, на екрана.

Можете да направите това по няколко начина. Може да използвате клавишите със стрелки, но е по-ефективно да поддържате ръцете си в позиция, използвайки стандартните команди C-p, C-b, C-f, и C-n. Тези символи са еквивалентни на четирите клавиши със стрелки, по следния начин:

                     Предишна линия, C-p  Назад, C-b.... Текущата позиция на курсора .... Напред, C-f                     Следваща линия, C-n

Още два важни команди със курсора:

 

M-< : Ви премества към началото на текста/файла.

M-> : Ви премества към края на текста/файла.

--------------------------------------------------------------------------------------------------------------------------------------------

Команди?

--------------------------------------------------------------------------------------------------------------------------------------------

Една koманда е функция на редактора, кoятo може да се предизвика чрез един prompt който се поевява при натискане на M-x .

Може да разлечим лесно тези функций,  гледайки EmacsLisp кода, защото те имат (interactive) в своята дефиниция, разположена на най-високото ниво в тялото на функцията.

 

Следете за актуализаций на поста...

- ivo -

 

Съдържанието е лицензирано под Emacs General Public License.

Линк към коментара
Сподели в други сайтове

Като за начинаещ потребител на emacs.

Забравих да ти препоръчам това - Prelude

Може да се каже, чe е made in Bulgaria, тъй като автора на проекта е нашо момче Bozhidar Batsov .

 

P.S Между другото очаквам с нетърпение и emacs-cha-та със него на 19 май мисля, че беше.

Линк към коментара
Сподели в други сайтове

Мерси много на ivoarch за добрата воля да сподели съвети за emacs. Имам два въпроса 1. Има ли начин да му се забрани да прави темп файлове или поне да му се каже къде да ги записва тъй като го ползвам предимно в гит репота и после трябва да ги трия от гита2. Другия ми въпрос е има ли плъгин които да показва файловете нещо от рода на midnight comander тъй като не винаги знам името на файла които искам да редактирам.

Линк към коментара
Сподели в други сайтове

Здравей!

 

1.  Забрани правенето на .backup и autosave файлове.

 

1.1 Сложи във конфиг файла, това.

;; disable backup files (foo~)(setq backup-inhibited t);; disable auto-save files (#foo#)(setq auto-save-default nil)

1.2 Също може, да ползваш /tmp/ директорията за запазването им. (Аз ползвам този начин)

(setq backup-directory-alist     `((".*" . ,temporary-file-directory)))(setq auto-save-file-name-transforms     `((".*" ,temporary-file-directory t)))

(real example) Ако искаш да хвърлиш едно око, на моят конфиг за файловете.

 

Не свързано с emacs

1.3 Може да използваш .gitignore за да игнорираш тези файлове, когато push-ваш във git.

git repo] cat .gitignore*~#*

2. Да - има такива.

 

2.1 Акo искаш точно да е като midnight comander, хвърли едно око нa sunrise-commander , прочети добре за него и плъгините му.

 

За да го инсталираш, е достатъчно да добавиш:

(add-to-list 'package-archives  '("SC" . "http://joseito.republika.pl/sunrise-commander/") t)

И после M-x package-install sunrise или sunrise-commander (мисля, че едно от двете беше). Ако натиснеш <Tab> може да ти завърши, и покаже по-точно.

 

2.2 Също, емакс има dired-mode , аз си предпочитам него, и точно него си ползвам като, файлове мениджър във моята система. Ако искаш да го пробваш още сега, изпълни следното, M-x dired-jump във директорията която искаш. Или също може да използваш командата C-x d (dired) .

 

Един alias за ~/.bashrc или ~/.zshrc който си ползвам, когато искам да използвам файлове мениджър от терминала.

 

efm - emacs file manager (нуждаеш се, от емакс стартиран като демон.)

alias efm='emacsclient -t -e "(dired-jump "$(pwd)")"'

За Dired има, най различни представки, които могът да се дабавят лесно, след като ги инсталиш със M-x package-install <модо> .  След като, се запознаеш добре със него.

 

(real example) Ако искаш да хвърлиш едно око, на моят конфиг за dired.

 

2.3 Също, може да пробваш и следните модота.

 

- sr-speedbar

 

Един мой стар конфиг за него (стар - защото вече него ползвам) не защото е лош, но просто съм си свикнал на стандартният начин, да се движа и файловете и директорийте и почти не съм го ползвал.

 

Инсталирай M-x packages-install sr-speedbar

(require 'sr-speedbar)(custom-set-variables'(speedbar-mode-specific-contents-flag t)'(speedbar-show-unknown-files t)'(speedbar-use-images nil))(setq sr-speedbar-right-side t      sr-speedbar-auto-refresh t      sr-speedbar-skip-other-window-p t      sr-speedbar-max-width 20      sr-speedbar-width-x 10)(global-set-key [f5] 'sr-speedbar-toggle)

- emacs-nav

 

edit: Забравих, също бих ти препоръчал да прочетеш за Ido и си го нагласиш, нема нужда да го инстлаираш, идва инсталирано.

(setq ido-enable-flex-matching t) (setq ido-everywhere t) (ido-mode 1)

После пробвай как е, със M-x ido-find-file

 

За да замениш find-file със ido-find-file във .emacs

(global-set-key (kbd "C-x f") 'ido-find-file)

Също може да хвърлиш и едно око на ido-vertical-mode .

 

Така ще търсиш по бързо файловете и не само..

Линк към коментара
Сподели в други сайтове

1. Има ли начин да му се забрани да прави темп файлове или поне да му се каже къде да ги записва тъй като го ползвам предимно в гит репота и после трябва да ги трия от гита

е ти ся за един git clean -xdf ли си :P

Не свързано с emacs1.3 Може да използваш .gitignore за да игнорираш тези файлове, когато push-ваш във git.

git repo] cat .gitignore*~#*

Това е правилният начин. Или с .git/exclude - второто е само за локалното репо - защото git "вижда" .gitignore(т.е. може да го добавиш в репото), но не и .git/exclude. Изключването на темп файловете ще осакати емакса.
Линк към коментара
Сподели в други сайтове

Изключването на темп файловете ще осакати емакса.

И аз, съм слушъл негативи по този въпрос!

Мисля, чe е най добре те да отиват в temp/ или друга директория по избор ~/.saves или ~/.emacs-backups нещо такова.

 

BackupFiles || BackupDirectory разбира се в нета е пълно, с най различни методи, как да контролираш тези файлове.

Линк към коментара
Сподели в други сайтове

И аз, съм слушъл негативи по този въпрос!

Мисля, чe е най добре те да отиват в temp/ или друга директория по избор ~/.saves или ~/.emacs-backups нещо такова.

 

BackupFiles || BackupDirectory разбира се в нета е пълно, с най различни методи, как да контролираш тези файлове.

да - само че е хубаво за всеки проект да си имаш такава, а не да ги сложиш в хоума директно. Щото иначе ако имаш 2 версии на проекта може да ти съвпадат имената на темп файловете и да се изпозатрият. И си сетваш една променлива на средата за текущ проект - те и без това повечето искат/имат такива.

Но при все това, .git/exclude работи за мен безотказно от много време и на мен темп файловете на vim са ми до оригиналите. Макар че, основната полза е, да не ми претоварва изхода на git status. Друга полза няма - да ползваш git add -A е ебаси безотговорната работа...

Линк към коментара
Сподели в други сайтове

да - само че е хубаво за всеки проект да си имаш такава, а не да ги сложиш в хоума директно. Щото иначе ако имаш 2 версии на проекта може да ти съвпадат имената на темп файловете и да се изпозатрият. И си сетваш една променлива на средата за текущ проект - те и без това повечето искат/имат такива.

Но при все това, .git/exclude работи за мен безотказно от много време и на мен темп файловете на vim са ми до оригиналите. Макар че, основната полза е, да не ми претоварва изхода на git status. Друга полза няма - да ползваш git add -A е ебаси безотговорната работа...

Е да,  и това не е лоша идея!

Зависи, кой как е свикнал, или как му е най удобно, то за такива работи по принцип, правилата отпадът.

Иначе, аз във всяко репо почти си ползвам .gitignore файла, като там съответно си пъхам файловете/директорийте които неискам да ми се пушват. Макар, чe понякога както ти казваш, натоварва доста изхода от git status , според зависи броя на файлове с които боравиш в едно репо.

 

Особенно на репота където има python :)

 

__pycache__

.doit*

pip-log.txt

build

bin

cache

dist

sdist

lib

include

 

 Друга полза няма - да ползваш git add -A е ебаси безотговорната работа...

И да ползваш git add . още повече :) (сори, сега видех -A то ти)

Линк към коментара
Сподели в други сайтове

Кофти ама не ми е опция .gitignore щото сега си правя експеримент и пробвам навсякъде emacs. И при мен на компа и на сървърите и не искам дам да оставям излишни файлове по директориите. По ми харесва да са ми прегледни проектите. 

Относно git add . аз почти винаги само така правя но го правя много често и знам какво точно съм променял та не виждам проблем

Линк към коментара
Сподели в други сайтове

Кофти ама не ми е опция .gitignore щото сега си правя експеримент и пробвам навсякъде emacs. И при мен на компа и на сървърите и не искам дам да оставям излишни файлове по директориите. По ми харесва да са ми прегледни проектите. Относно git add . аз почти винаги само така правя но го правя много често и знам какво точно съм променял та не виждам проблем

По първото : .git/exclude си е само твой, не се вижда от git и си го има по принцип, просто е празен. git clean -xdf след като приключиш работа ти прави проекта като новичък. Но все пак може да ползваш това което предложи Иво с темп директория (евентуално за всеки проект)По второто - ами всъщност очевидно имаш проблем - качваш файлове, които не искаш. Точно това му е безотговорното. Освен ако не създаваш по 100 нови файла на ден или всеки ден да създаваш нови гит репо-та, е грешно, защото предразполага към грешки и излишно. В общия случай само се модифицират файлове, не се създават нови - тогава се ползва git add -p или евентуално git add -u ако промените са адски много. Ако си добавял нови файлове, се ползва git add <file1> <file2> ... <fileN> така много точно си казваш "да, направих тоя файл и искам да стане част от репото" и разни други файлчета нямат шанс да влязат. Същото с git rm ако си премахвал.
Линк към коментара
Сподели в други сайтове

Няма проблем, но да го ползваш всеки път (дори за пушване на конкретни файлове), е малко мързелива работа).

 

На колегата, е най точен отговорът :)

 

P.S

Относно Git и аз нe съм кой знае какъв майстор :), сигорно знам 1% от него (но за другите 99% има GGL), а го ползвам от 2011.

Линк към коментара
Сподели в други сайтове

  • 5 месеца по-късно...

Вдъхновен от този пост

Превключване на автоматично пренасяне на следващ ред (line-wrapping)

Този пост е за тука...

 

Допълнете ...

Vim:

line wrapping - включване и изключване

 

:set wrap

:set nowrap

аналогично може да се добави във .vimrc (без двоеточие), тогава ще важи при всяко стартиране.

Същинско пренасяне (на цяла дума) - т.е. вмъкване символ за нов ред след максимум примерно 80 символа:

 

:set textwidth=80

Това важи за последващите промени.

За да форматирате вече въведен текст така, след горното маркирате текста (visual mode) и

 

gq
Линк към коментара
Сподели в други сайтове

Извинявам се за лекия офтопик - гледам че някой хора имат спомени от миналия век.

въпроса ми е за нещо от по-миналия.

 

Някой спомня ли си какъв текстов редактор имаше под DOS 3.3 ? Говоря за 1989 - 90 г.

Когато нямаше Уиндоус, Линукс ... " ... група Сигнал и каскади ..."

 

Въпросния редактор беше доста добър за времето - имаше си правописна проверка, даже и сричкопреасяне.

Линк към коментара
Сподели в други сайтове

Ок!

 

Emacs:
line wrapping - включване и изключване

M-x toggle-truncate-lines

Имайте напредвид, че по подразбиране тази опция е включена, затова ето пример как да иизключим по желание през конфиг файла.

 

добавете във emacs init.el или ~/.emacs файла за да изключим опцията.

 

(set-default 'truncate-lines t)

 

За зададете максимум на дължина при която искате линиите автоматинчо да се пренасят на следващ ред.

 

По подразиране ширината е 70

 

Ето как да я направим 80

M-x set-fill-column RET 80

През конфиг файла.

 

(setq-default fill-column 80)

Линк към коментара
Сподели в други сайтове

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

×
×
  • Добави ново...

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите Условия за ползване