minor organization changes
initial commit
I created this config to make emacs a more smooth first experience for my girlfriend. I do not think this setup is meant to be used always, but it does break a few first annoying barriers. Mainly the C-c
and the C-x
hotkeys.
Well, you can use it as an org file. To do so, create the \~/.emacs
file like this:
(org-babel-load-file "~/path/to/this/file/name-of-this-file.org")
A note of caution: in my config, my emacs only converts to the configuration what is with emacs-lisp
. If you fell the need, just erase the elisp
to be extra safe.
Ok, so this is the main dish. This repository contains the configuration that breaks those first barriers I mentioned earlier. I was not able to download it through use-package
. So you will have to do it yourself. But it is very simple. All you have to do is put the main file wakib-keys.el
inside the emacs configuration folder \~/.emacs.d/
. Done! Good to go!
;; https://github.com/darkstego/wakib-keys
(require 'wakib-keys "~/.emacs.d/wakib-keys.el")
(wakib-keys 1)
I will not elongate on what the lib does (you can read it the original repo =]) but the idea is that Ctrl + c
and Ctrl + x
(or in emacs notation C-c
and C-x
) are used as expected in most guis applications, i.e., for copying and cutting.
Well here we can divide in a few parts.
This setup is for you to be able to install packages more easily.
;; Configure package.el to include MELPA.
(require 'package)
(add-to-list 'package-archives '("gnu" . "https://elpa.gnu.org/packages/") t)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
(add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/") t)
(package-initialize)
;; Ensure that use-package is installed.
;;
;; If use-package isn't already installed, it's extremely likely that this is a
;; fresh installation! So we'll want to update the package repository and
;; install use-package before loading the literate configuration.
(when (not (package-installed-p 'use-package))
(package-refresh-contents)
(package-install 'use-package))
These are some keybindings that I find very useful. They are very similar to web browsers (except for the last three).
(global-set-key (kbd "<C-tab>") 'other-window)
(global-set-key (kbd "<C-f4>") 'delete-window)
(global-set-key (kbd "C-t") 'split-window-right)
(global-set-key (kbd "C-<") 'previous-buffer)
(global-set-key (kbd "C->") 'next-buffer)
This part I put because it not so trivial to create a first version, and it is useful if you want to be a more "emacs user". Also, this code creates a good search in the buffer with Ctrl + s
(or C-s
).
(use-package ivy
:diminish
:bind (("C-s" . swiper)
:map ivy-minibuffer-map
("TAB" . ivy-alt-done)
("C-f" . ivy-alt-done)
("C-l" . ivy-alt-done)
("C-j" . ivy-next-line)
("C-k" . ivy-previous-line)
:map ivy-switch-buffer-map
("C-k" . ivy-previous-line)
("C-l" . ivy-done)
("C-d" . ivy-switch-buffer-kill)
:map ivy-reverse-i-search-map
("C-k" . ivy-previous-line)
("C-d" . ivy-reverse-i-search-kill))
:config
(ivy-mode 1))
(use-package counsel
:demand t
:bind (("M-x" . counsel-M-x)
("C-x b" . counsel-ibuffer)
("C-x C-f" . counsel-find-file)
("C-M-l" . counsel-imenu)
:map minibuffer-local-map
("C-r" . 'counsel-minibuffer-history))
:custom
(counsel-linux-app-format-function #'counsel-linux-app-format-function-name-only)
:config
(setq ivy-initial-inputs-alist nil)) ;; Don't start searches with ^
Emacs is widely know for its chords, and it can be intimidating. This package helps you see what is that you chording for.
(use-package which-key
:config (which-key-mode))
Well, here it is important for me to say that, the wakib-keys
package may have some impact but fell free to add more stuff! The nice thing of emacs is to that is very modular and you can try a bunch of packages! For example the very nice elpy package for python development:
(use-package elpy
:ensure t
:init
(elpy-enable))