[Emacs] Move Eshell functions to aliases
Many Eshell functions do not need to be declared as such and can do just fine as Eshell aliases. This commit moves all these functions to the 'eshell-alias' file
This commit is contained in:
		
							parent
							
								
									bdc4e543cf
								
							
						
					
					
						commit
						c46fcd3db7
					
				@ -35,3 +35,24 @@ alias flac     youtube-dl -x --audio-format flac --audio-quality 0 $*
 | 
				
			|||||||
alias mp3        youtube-dl -x --audio-format flac --audio-quality 0 $*
 | 
					alias mp3        youtube-dl -x --audio-format flac --audio-quality 0 $*
 | 
				
			||||||
alias wget       wget -c $*
 | 
					alias wget       wget -c $*
 | 
				
			||||||
alias rsync      rsync -ruvtEhl --progress $*
 | 
					alias rsync      rsync -ruvtEhl --progress $*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					alias remove     sudo pacman -Rscnd $*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					alias gpumeminfo grep -i --color memory /var/log/Xorg.0.log
 | 
				
			||||||
 | 
					alias diskspace  sudo df -h | grep -E "sd|lv|Size" | sort
 | 
				
			||||||
 | 
					alias meminfo    free -m -l -t
 | 
				
			||||||
 | 
					alias cpuinfo    lscpu
 | 
				
			||||||
 | 
					alias pscpu      ps auxf | sort -nr -k 3
 | 
				
			||||||
 | 
					alias pscpu10    ps auxf | sort -nr -k 3 | head -10
 | 
				
			||||||
 | 
					alias psmem      ps auxf | sort -nr -k 4
 | 
				
			||||||
 | 
					alias psmem10    ps auxf | sort -nr -k 4 | head -10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					alias q          exit
 | 
				
			||||||
 | 
					alias exti       exit
 | 
				
			||||||
 | 
					alias exi        exit
 | 
				
			||||||
 | 
					alias clean      clear
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					alias vi         emacs
 | 
				
			||||||
 | 
					alias vim        emacs
 | 
				
			||||||
 | 
					alias ed         emacs
 | 
				
			||||||
 | 
					alias nano       emacs
 | 
				
			||||||
 | 
				
			|||||||
@ -1421,61 +1421,6 @@ For some ease of use, I’ll also declare ~list-buffers~ as an alias of ~ibuffer
 | 
				
			|||||||
  (defalias 'list-buffers 'ibuffer)
 | 
					  (defalias 'list-buffers 'ibuffer)
 | 
				
			||||||
#+END_SRC
 | 
					#+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
***** System monitoring
 | 
					 | 
				
			||||||
:PROPERTIES:
 | 
					 | 
				
			||||||
:CUSTOM_ID: User_Configuration-Eshell-Aliases-System_monitoring-ee01b070
 | 
					 | 
				
			||||||
:END:
 | 
					 | 
				
			||||||
Similar to ~meminfo~, we also have ~gpumeminfo~ so we can get a quick look at the memory-related logs of our X session.
 | 
					 | 
				
			||||||
#+BEGIN_SRC emacs-lisp
 | 
					 | 
				
			||||||
  (defun eshell/gpumeminfo (&rest $args)
 | 
					 | 
				
			||||||
    (eshell/grep "-i" "--color" "memory" "/var/log/Xorg.0.log"))
 | 
					 | 
				
			||||||
  (defun eshell/diskspace ()
 | 
					 | 
				
			||||||
    (shell-command "sudo df -h | grep -E \"sd|lv|Size\" | sort"))
 | 
					 | 
				
			||||||
#+END_SRC
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
I also declared ~cpuinfo~ an alias of ~lscpu~ in order to keep consistent with ~meminfo~.
 | 
					 | 
				
			||||||
#+BEGIN_SRC emacs-lisp
 | 
					 | 
				
			||||||
  (defun eshell/meminfo ()
 | 
					 | 
				
			||||||
    (shell-command "free -m -l -t"))
 | 
					 | 
				
			||||||
#+END_SRC
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
~pscpu~ gives us information on what the CPU is running right now, and I also declared ~cpuinfo~ an alias of ~lscpu~ in order to keep consistent with ~meminfo~.
 | 
					 | 
				
			||||||
#+BEGIN_SRC emacs-lisp
 | 
					 | 
				
			||||||
  (defun eshell/cpuinfo ()
 | 
					 | 
				
			||||||
    (shell-command "lscpu"))
 | 
					 | 
				
			||||||
#+END_SRC
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
~pscpu10~ limits that to the top 10 threads.
 | 
					 | 
				
			||||||
#+BEGIN_SRC emacs-lisp
 | 
					 | 
				
			||||||
  (defun eshell/pscpu ()
 | 
					 | 
				
			||||||
    (shell-command "ps auxf | sort -nr -k 3"))
 | 
					 | 
				
			||||||
  (defun eshell/pscpu10 ()
 | 
					 | 
				
			||||||
    (shell-command "ps auxf | sort -nr -k 3 | head -10"))
 | 
					 | 
				
			||||||
#+END_SRC
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Similarly, ~psmem~ gives us information on the memory usage of the current threads, and ~psmem10~ only the ten most important threads in terms of memory usage.
 | 
					 | 
				
			||||||
#+BEGIN_SRC emacs-lisp
 | 
					 | 
				
			||||||
  (defun eshell/pscpu ()
 | 
					 | 
				
			||||||
    (shell-command "ps auxf | sort -nr -k 4"))
 | 
					 | 
				
			||||||
  (defun eshell/pscpu10 ()
 | 
					 | 
				
			||||||
    (shell-command "ps auxf | sort -nr -k 4 | head -10"))
 | 
					 | 
				
			||||||
#+END_SRC
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
***** System management (packages and services)
 | 
					 | 
				
			||||||
:PROPERTIES:
 | 
					 | 
				
			||||||
:CUSTOM_ID: User_Configuration-Eshell-Aliases-System_management_(packages_and_services)-afb6d9d3
 | 
					 | 
				
			||||||
:END:
 | 
					 | 
				
			||||||
The first command is ~remove~ which removes a package and its dependencies from the system.
 | 
					 | 
				
			||||||
#+BEGIN_SRC emacs-lisp
 | 
					 | 
				
			||||||
  (defun eshell/remove (&rest $args)
 | 
					 | 
				
			||||||
    (phundrak/concatenate-shell-command "sudo pacman -Rscnd"
 | 
					 | 
				
			||||||
                                        $args))
 | 
					 | 
				
			||||||
#+END_SRC
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
***** Other
 | 
					 | 
				
			||||||
:PROPERTIES:
 | 
					 | 
				
			||||||
:CUSTOM_ID: User_Configuration-Eshell-Aliases-Other-bd88ca97
 | 
					 | 
				
			||||||
:END:
 | 
					 | 
				
			||||||
~mkcd~ is a function that allows me to create a directory and ~cd~ into it at the same time.
 | 
					~mkcd~ is a function that allows me to create a directory and ~cd~ into it at the same time.
 | 
				
			||||||
#+begin_src emacs-lisp
 | 
					#+begin_src emacs-lisp
 | 
				
			||||||
  (defun eshell/mkcd ($directory)
 | 
					  (defun eshell/mkcd ($directory)
 | 
				
			||||||
@ -1483,26 +1428,6 @@ The first command is ~remove~ which removes a package and its dependencies from
 | 
				
			|||||||
    (cd $directory))
 | 
					    (cd $directory))
 | 
				
			||||||
#+end_src
 | 
					#+end_src
 | 
				
			||||||
 | 
					
 | 
				
			||||||
***** Typos
 | 
					 | 
				
			||||||
:PROPERTIES:
 | 
					 | 
				
			||||||
:CUSTOM_ID: User_Configuration-Eshell-Aliases-Typos-c7bfe6eb
 | 
					 | 
				
			||||||
:END:
 | 
					 | 
				
			||||||
~q~ is a shorthand for ~exit~. ~exti~ and ~exi~ are for typos when I type ~exit~.
 | 
					 | 
				
			||||||
#+BEGIN_SRC emacs-lisp
 | 
					 | 
				
			||||||
  (defun eshell/q (&rest $args)
 | 
					 | 
				
			||||||
    (eshell/exit $args))
 | 
					 | 
				
			||||||
  (defun eshell/exti (&rest $args)
 | 
					 | 
				
			||||||
    (eshell/exit $args))
 | 
					 | 
				
			||||||
  (defun eshell/exi (&rest $args)
 | 
					 | 
				
			||||||
    (eshell/exit $args))
 | 
					 | 
				
			||||||
#+END_SRC
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
~clean~ is also a typo of ~clear~ I often make. Let’s fix this:
 | 
					 | 
				
			||||||
#+BEGIN_SRC emacs-lisp
 | 
					 | 
				
			||||||
  (defun eshell/clean (&rest $args)
 | 
					 | 
				
			||||||
    (eshell/clear $args))
 | 
					 | 
				
			||||||
#+END_SRC
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
**** Custom functions
 | 
					**** Custom functions
 | 
				
			||||||
:PROPERTIES:
 | 
					:PROPERTIES:
 | 
				
			||||||
:CUSTOM_ID: User_Configuration-Eshell-Custom_functions-79d98245
 | 
					:CUSTOM_ID: User_Configuration-Eshell-Custom_functions-79d98245
 | 
				
			||||||
@ -1528,19 +1453,15 @@ I also want to be able to have multiple instances of Eshell opened at once. For
 | 
				
			|||||||
:PROPERTIES:
 | 
					:PROPERTIES:
 | 
				
			||||||
:CUSTOM_ID: User_Configuration-Eshell-Custom_functions-Redirect_text_editors_to_Emacs-dff362c6
 | 
					:CUSTOM_ID: User_Configuration-Eshell-Custom_functions-Redirect_text_editors_to_Emacs-dff362c6
 | 
				
			||||||
:END:
 | 
					:END:
 | 
				
			||||||
I still have some muscle memory telling me to open nano, ed, or vim, and sometimes I even try to type ~emacs~ in the terminal, which is stupid with Eshell since I’m already inside Emacs. So, for each of these text editors, let’s make the command open the files in Emacs.
 | 
					I still have some stupid muscle memory telling me to open ~emacs~ in the terminal, which is stupid with Eshell since I’m already inside Emacs. So, let’s open each file passed to the ~emacs~ command and bury the eshell buffer (we’ll get back to it later).
 | 
				
			||||||
#+BEGIN_SRC emacs-lisp
 | 
					#+BEGIN_SRC emacs-lisp
 | 
				
			||||||
  (defun eshell/emacs (&rest $files)
 | 
					  (defun eshell/emacs (&rest $files)
 | 
				
			||||||
    "Open a file in a new buffer. Old habits die hard"
 | 
					    "Open a file in a new buffer. Old habits die hard"
 | 
				
			||||||
    (if (null $files)
 | 
					    (if $files
 | 
				
			||||||
        (bury-buffer)
 | 
					 | 
				
			||||||
        (mapc #'find-file
 | 
					        (mapc #'find-file
 | 
				
			||||||
              (mapcar #'expand-file-name
 | 
					              (mapcar #'expand-file-name
 | 
				
			||||||
                    (eshell-flatten-list (reverse $files))))))
 | 
					                      (eshell-flatten-list (reverse $files))))
 | 
				
			||||||
  (defalias 'eshell/vi 'eshell/emacs)
 | 
					      (bury-buffer)))
 | 
				
			||||||
  (defalias 'eshell/vim 'eshell/emacs)
 | 
					 | 
				
			||||||
  (defalias 'eshell/ed 'eshell/emacs)
 | 
					 | 
				
			||||||
  (defalias 'eshell/nano 'eshell/emacs)
 | 
					 | 
				
			||||||
#+END_SRC
 | 
					#+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**** Environment variables
 | 
					**** Environment variables
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user