s. So I Write / shelper

Posts

23 ENTRIES

setup emacs foc C++ with ccls and lsp

So ccls is a lsp wrapper for clang it works as a backend that indexes source code and gives emacs index information for better navigation and refactoring of c++ I have had a few issues with the tool’s setup in emacs enviroment. and found the following things that may need extra attention .ccls file, this file basically does two things tell ccls how to index the file using clang before index the file tell clang how to compile and interpret the code as there is a mixture of options for ccls and arguments for clang, need to pay extra attention usually lines in .

cppemacs2 min read

Orgmode for nikola post

first need to setup the orgmode plugin for nikola refer to here, then put this into init.el ;;; set up new nikola new post directly in emacs ;; does not work on windows (defun publish-blog-post () "nikola github-deploy" (interactive) (save-buffer) (let ((my-blog-repo "path to your blog repo"))) ;; (let (my-blog-repo)) ;; (setq my-blog-repo "~/shelper.github.io") (cd my-blog-repo) (shell-command "nikola github_deploy")) (defun new-blog-post (title) "new blog post to shelper.github.io" (interactive "sEnter post title: ") (let ((my-blog-repo "path to your blog repo"))) (cd my-blog-repo) (setq new-post-cmd (concat "nikola new_post -f orgmode -t " "\"" title "\"")) (shell-command new-post-cmd) (setq new-post-file (concat my-blog-repo "/posts/" (replace-regexp-in-string " " "-" title) ".

nikolaorgmode1 min read

Jupyter skills and tricks

use jupyterlab use interact for interactive widget use qgrid for better dataframe display within ipython notebook, follow instructions here %load_ext sql for sql query within the notebook, refer to here

jupyter1 min read

best practice for jupyter and ipython

A few things to setup the IPython and Jupyter for a best practise. IPython configuration Change ~/.ipython/profile_default/startup/init.ipy for their usage respectively To enable versioning of the python/jupyter environment, you need to pip install version_information and then add below, afterward for each IPython notebook file I put %version_information numpy, scipy, matplotlib, pandas to display my python environment version information %load_ext version_information To enable autoloading of modified modules in IPython, add below %load_ext version_information %load_ext autoreload %autoreload 2 I also added the lines below just because I use them everytime I open IPython import numpy as np import matplotlib.

pythonjupyter2 min read

switch recent two buffer alternatively

so there is a post described using key chord for fast buffer switching between most recent two buffers. it works for most cases, but if you are using org babel mode and editing source code in the *org src .* buffer, then this *org src .* buffer cannot be accessed by the method described here. so I made another function to solve this issue, and here it is: (defun get-next-buffer () (interactive) (if (string= (car (helm-buffer-list)) " *Minibuf-1*") (switch-to-buffer (car (cdr (helm-buffer-list)))) (switch-to-buffer (car (helm-buffer-list))))) (key-chord-define-global "jk" 'get-next-buffer) strangely when switching buffer using `helm-buffer-lists`, and if you exit without selecting any buffer, you gets `*Minibuf-1*` into the buffer list and will switch to minibuffer.

2 min read