Tag Archives: emacs

ஈமேக்ஸ் உரைதிருத்தி – பாகம் 2

ஈமேக்ஸ் என்னும் சூப்பர்மேன் பற்றிய அறிமுகத்தையும் சில கட்டளைகளையும் கடந்த கட்டுரையில் பார்த்தோம். மேலும் கட்டளைகளைப் பயிலும் முன்பு, ஈமேக்ஸின் மேஜிக் ஷோ 🙂

ஒரு நிரலின் (program) தரத்தை அளவிடப் பயன்படுத்தப்படும் முதல் அளவுகோல் வாசிக்குந்தன்மை (readability). Indentation சரியாக இல்லாத நிரல் நிரலாக ஏற்றுக்கொள்ளப்பட மாட்டாது. அத்தகைய ஒரு நிரலை ஒரே நொடியில் அழகான நிரலாக மாற்றிக் காட்டும் ஈமேக்ஸ்.

  1. Indentation அறவே இல்லாத ஒரு நிரலை ஈமேக்ஸில் திறக்கவும்.
  2. Cx அழுத்தியபின் h அழுத்தவும்.
  3. CM அழுத்தவும்.

உங்கள் நிரல் எவ்வளவு நேர்த்தியாக சீரமைக்கபட்டுவிட்டது! ஆம் இதெல்லாம் ஈமேக்ஸ்கு ஜுஜூபி 😀 சரி வாருங்கள் மேலும் சில கட்டளைகள் பயில்வோம்.

பல கோப்புகளைக் கையாளுதல்

பல கோப்புகளை ஒரே நேரத்தில் கையாளுவது பல சமயங்களில் பயனுள்ளதாக இருக்கும். எடுத்துக்காட்டாக, ஒரு கோப்பிலிருந்து உரையை நகலெடுத்து இன்னொரு கோப்பில் இடலாம். வலை உலாவிகளில் பல tab-களைப் பயன்படுத்துவது போலத்தான். vi பயன்படுத்திப் பழகியோருக்கு இது புதுமையாக இருக்கலாம். 😛

முதல் கோப்பைத் (sample1 என்று வைத்துக் கொள்வோம்) திறந்தபின் இன்னொரு கோப்பையும் (sample2 என்று வைத்துக் கொள்வோம்) அதேபோலத் (Cx Cf) திறக்கவும். இப்போது sample1 sample2-ன் வலப்பக்கத்தில் இருப்பதாய் எண்ணிக் கொள்ளுங்கள். அதாவது திறக்கப்படும் ஒவ்வொரு புதிய கோப்பும் தற்போதைய கோப்பின் இடப்பக்கத்தில் திறப்பதுபோல் வைத்துக்கொள்ளலாம். இப்போது sample1-ற்குச் செல்ல Cx அழுத்தி வலது அம்புக்குறியை அழுத்தவும். அதேபோல் மீண்டும் sample2-ற்குச் செல்ல Cx <இடது அம்புக்குறி>.

இப்படிப் புதிய கோப்புகளைத் திறந்துகொண்டே போனால் ஒரு கட்டத்தில் தேவையான கோப்பிற்குச் செல்வது தலைவலியாகிவிடும். கவலைப்பட வேண்டாம். நூறு கோப்புகளைத் திறந்தாலும் தேவையான கோப்பிற்குச் செல்ல எளிமையான வழி உள்ளது. Cx அழுத்தி b அழுத்தவும். இப்போது நிலைகாட்டி (cursor) சாளரத்தின் கீழ்ப்பகுதியில் வந்து நிற்கும் (இதை mini-buffer எள்று சொல்வதுண்டு). அங்கே தேவையன கோப்பின் பெயரை இட்டு Enter அழுத்தவும்.

திறக்கப்படிருக்கும் அனைத்துக் கோப்புகளின் பெயர்களையும் பட்டியலிட Cx Cb.

மீளமைத்தல் (undo)

உரைதிருத்தும் போது மீளமைத்தல் என்பது பலருக்கு முக்கியமான தேவை. இதற்கு Cx u பயன்படுத்தலாம். C_ என்பதும் இதே வேலையைச் செய்யும்.

தேடுதலும் மாற்றுதலும் (Search and replace)

குறிப்பிட்ட சொல்லை அல்லது சொற்றொடரைத் தேட Cs அல்லதி Cr பயன்படுத்தலாம். Cs நிலைகாட்டி இருக்கும் இடத்தில் தொடங்கி முன் நோக்கித் தேடும், Cx பின் நோக்கித் தேடும்.

Regular expressions கொண்டும் தேடலாம். முன்நோக்கித் தேட CMs, பின்நோக்கித் தேட CMr.

அதேபோல் ஒரு சொற்றொடரைத் தேடி அதற்குப் பதிலாய் வேறொரு சொற்றொடரை இட, C% அழுத்தவும். Minibuffer-ல் தேடவேண்டிய சொற்றொடரை இட்டு <Enter> அழுத்தவும். பின்னர் புதிய சொற்றொடரை இடவும். இதேபோல் regular expression கொண்டு replace செய்ய CM% பயன்படுத்தலாம்.

இப்போது எங்கெல்லாம் replace செய்ய வேண்டும் என்பதையும் குறிப்பிடலாம்.

குறியீடு பொருள்
! அனைத்து இடங்களிலும் மாற்ற
, தற்போது காட்டப்படும் இடத்தில் மட்டும் மாற்ற
y தற்போது காட்டப்படும் இடத்தில் மாற்றி அடுத்த இடத்திற்குச் செல்ல
n அடுத்த இடத்திற்குச் செல்ல
q எதையும் மாற்றாமல் விட

ஈமேக்ஸ் உரைதிருத்தி – ஓர் அறிமுகம்

ஈமேக்ஸ் (emacs) – இதை என்னவென்று அறிமுகம் செய்வது? வெறும் உரைதிருத்தி (text editor) என்று கூறிவிட முடியாது; அதையும் தாண்டிப் பலவற்றைச் செய்யவல்லது. கிட்டத்தட்ட ஓர் இயங்குதளத்திற்கு இணையான மென்பொருள். ஆம், எழுத்துக் கோப்புகள் (text documents) தொடங்கி, JPEG, PNG போன்ற படக்கோப்புகள், PDF ஆவணங்கள் எனப் பல வகையான கோப்புகளைக் கையாள வல்லது.

கோப்புகளைப் பார்ப்பதும் திருத்துவதும் வெறும் சிறு பகுதிதான். இதைக்கொண்டு மின்னஞ்சல் அனுப்பலாம், கிட் (git) போன்ற திருத்தக் கட்டுப்பாட்டு மென்பொருட்களைக் (revision control systems) கையாளலாம், முனையத்தைப் (terminal) பயன்படுத்தலாம். மேலும் நாள்காட்டி, கணிப்பான்(calculator), விளையாட்டுகள் எனப் பல வசதிகளை உள்ளடக்கியது. அதனைக் கிட்டத்தட்ட ஓர் இயங்குதளத்திற்கு இணையாதென நான் கூறியதன் காரணம் இப்போது புரியும் என்று நினைக்கிறேன் 🙂

இதற்கு இன்னொரு சிறப்பம்சமும் உண்டு. கட்டற்ற மென்பொருள் கோட்பாட்டின் தந்தையென அழைக்கப்படும் ரிச்சர்ட் ஸ்டால்மன் அவர்களால் உருவாக்கப்பட்டு, GPL உரிமத்துடன் (இதுவும் அவர் வடிவமைத்ததே) வெளியடப்பட்ட முதல் மென்பொருள் ஈமேக்ஸ்.

இத்தகைய சிறப்பான ஒரு மென்பொருளைக் கற்றுக்கொள்ள இன்னும் ஏன் தாமதிக்க வேண்டும்? வாருங்கள் ஈமேக்ஸ் உலகத்திற்குள் புகுவோம்.

நிறுவுதல்

பல குனு/லினக்ஸ் இயங்குதளங்களில் தொகுபதிவகத்திலேயே (repository) ஈமேக்ஸ் கிடைக்கும். அந்தந்த இயங்குதளத்தின் பொதி மேலாண்மை மென்பொருள் வாயிலாகவே நிறுவிக்கொள்ள முடியும். உபுண்டு இயங்குதளத்தில் நிறுவ, முனையத்தில் கீழ்க்காணும் கட்டளையை இடவும்:

sudo apt-get install emacs23

ஈமேக்ஸ் கட்டளைகள்

ஈமேக்ஸ் கட்டளைகளைப் பார்க்கும் முன்பு, இரு குறியீடுகளை அறிந்து கொள்வது பயனுள்ளதாய் இருக்கும்.

குறியீடு பொருள்
C-x Ctrl விசையுடன் சேர்த்து x விசையை அழுத்தவும்
M-x Meta (Alt) விசையுடன் சேர்த்து x விசையை அழுத்தவும்

கோப்பைத் திறத்தல்

Cx அழுத்தி Cf அழுத்தியதும் நிலைகாட்டி (cursor) சாளரத்தின் கீழ்ப்பகுதியில் வந்து நிற்கும். அங்கே திறக்கவேண்டிய கோப்பிற்கான பெயரை இடவும்.

Screenshot of opening a file in emacs

Screenshot of opening a file in emacs

கோப்பை சேமித்தல்

கோப்பில் மாற்றங்கள் செய்தபின் அதனை சேமிக்க, Cx Cs (C-x அழுத்தியபின் C-s அழுத்தவும்).

கோப்பை மூடுதல்

சேமித்த கோப்பை மூட Cx k (Cx அழுத்தியபின் k அழுத்தவும்) Enter

ஈமேக்ஸை விட்டு வெளியேற Cx Cc

உரை திருத்துதல்

உரையின் ஒரு பகுதியை select செய்ய, எப்போதும் போல Shift-ஐ அழுத்திக்கொண்டு அம்புக்குறிகளைப் (arrow keys) பயன்படுத்தலாம். அல்லது, அப்பகுதியின் தொடக்கத்தில் நிலைகாட்டியை வைத்து C-<space> அழுத்திவிட்டு, பின்னர் அம்புக்குறிகளைக் கொண்டு தேர்வு செய்யலாம்.

தேர்வு செய்த பகுதியை நகலெடுக்க Mw

தேர்வு செய்த பகுதியை அழிக்க Cw. மற்ற உரைதிருத்திகளில் இருப்பது போல் அல்லாமல், வெட்டுவதும் அழிப்பதும் (cut & delete) ஈமேக்ஸைப் பொறுத்தவரையில் ஒன்றே. அதாவது delete செய்யப்படும் எந்த ஓர் உரையும் clipboard-ல் இருக்கும். எனினும், Backspace அல்லது Delete விசைகளைக் கொண்டு ஒவ்வோர் எழுத்தாக அழிக்கப்படும் உரை க்ளிப்போர்டிற்குச் செல்லாது.

ஏற்கனவே வெட்டப்பட்ட அல்லது நகலெடுக்கப்பட்ட உரையை paste செய்ய Cy (y = yank)

உலாவுதல் (navigation)

பொதுவாகப் பயன்படுத்தப்படும் அம்புக்குறிகள், Home, Endஆகிய விசைகள் அல்லாமல் ஈமேக்ஸிற்கென்றே உரித்தான சில விசைகள் உள்ளன. அவற்றுள் சில:

ஓரெழுத்துப் பின்னால் செல்ல C-b

ஓரெழுத்து முன்னால் செல்ல C-f

முந்தைய வரிக்குச் செல்ல C-p

அடுத்த வரிக்குச் செல்ல C-n

வரியின் தொடக்கத்திற்குச் செல்ல C-a

வரியின் இறுதிக்குச் செல்ல C-e

இவை முதலில் சற்றுக் கடினமாகத் தோன்றினாலும், பழகிக்கொண்டால் விரைவாகத் தட்டச்சு செய்ய முடியும் (விசைப்பலகையில் அம்புக்குறிகள் இருக்கும் ஓரமாகக் கையை நகர்த்த வேண்டியதில்லை).

குறிப்பு: இதுபோன்ற கணினி தொடர்பான தமிழ்க் கட்டுரைகளுக்கு கணியம் மின்னிதழ் (e-magazine) ஒரு நல்ல ஊடகம்.

Auto-compile LESS file to CSS in emacs

LESS CSS is a great way of writing CSS code, thanks to its set of extended features that are not at all possible with CSS. Nested rules, variables, color functions, etc make it very handy. As the final output seen by the browser is plain CSS, there is no need for any third-party library or whatever.

Being an emacs user (and a fan) for a while, I’ve been looking for a way to compile LESS files to CSS, as and when they are saved. It would be even better if I could bind it to a keyboard shortcut, say F9. (This is not something big, just that I didn’t do it so far.)

My directory structure is like this:
LESS files in /some/path/less/
CSS files in /some/path/css/

So compiling a LESS file, say /some/path/less/style.less should output to /some/path/css/style.css

Here is the code that you have to add to .emacs

;; Function to compile current buffer (if it's a LESS file) to CSS
(defun compile-less-css ()
  "Compile LESS to CSS"
  (interactive)
  (if (string-match ".less$" (buffer-file-name))
    (async-shell-command (concat "lessc -x " (buffer-file-name) " "
      (file-name-directory (directory-file-name (file-name-directory buffer-file-name)))
      "css/" (file-name-sans-extension (file-name-nondirectory buffer-file-name)) ".css") nil nil))
  (delete-other-windows))

;; HotKey  to compile LESS to CSS
(global-set-key '[f9] 'compile-less-css)

;; To compile whenever the file is saved, uncomment the following line:
;(add-hook 'after-save-hook 'compile-less-css)

After saving the file, load the file so that the changes take effect. To load the file,
Mx load-file.

Enter .emacs in the prompt. Done! Now open a LESS file in emacs and press F9.

Happy hacking 🙂