GithubHelp home page GithubHelp logo

dfrib / dot-files Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 64 KB

My collection of dot files (including .doom.d) along with instructions I may otherwise forget.

License: MIT License

Emacs Lisp 100.00%

dot-files's Introduction

My Dot Files

This is intended to be a collection of the dot files I use to setup my work environment in, primarily for Linux.

Initially, I only have my Emacs setup here.

Emacs

I primarily work with C++ development in CMake projects under Git version control, where more often than not the supporting tools are written in Python. Thus, my Emacs configuration is inclined to primarily support C++ and Python development, as well as supporting my recently started journey into literate programming using the Babel Project, based on org-mode.

Before DOOM

Prior to using the configuration tracked in this repository, I was using the configuration covered in my dfrib/emacs_setup repository, which was a standard Emacs custom configuration centered around cmake-ide and rtags for setting up C++ IDE-like Emacs features.

The DOOM Era

I have since migrated to use a non-evil configuration of DOOM Emacs, moreover switching out cmake-ide and rtags in favour of ccls for my C++ IDE-like Emacs feature needs.

My non-evil configuration was initially forked from UndeadKernel/emacs_doom_private, see the actual fork for the history prior to the creation of this repository.

Similarly to the setup instructions as the dfrib/emacs_setup repository, below follows a summary of the pre-requisites for making use of my Emacs configuration.

Pre-requisites (Assuming Ubuntu)

CCLS

As is described in the ccls wiki, prior to building the ccls language server, the are some pre-requisites.

Install GCC, version >= 7.3 (or higher, if required by CMake installation)

For details: see How do I use the latest GCC on Ubuntu?

Add the Toolchain Test Builds PPA:

$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test
$ sudo apt-get update

Install e.g. GCC 8 and add the gcc-8 and g++8 alternatives to the system:

$ sudo apt-get install gcc-8 g++-8
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-8

Use sudo update-alternatives --config gcc to configure which gcc to use as default, in case you have other versions installed.

Install CMake, version >= 3.8

Make sure you have a recent GCC installed (see above), as building recent CMakes places pre-requisites on GCC version.

The default version provided by e.g. Ubuntus package manager is usually ancient, so remove that:

$ sudo apt remove cmake
$ sudo apt purge --auto-remove cmake

Download and unpack a recent version from CMake's webpage, noting that it is essential that you keep the unpacked folder for later, to allow uninstalling the CMake you will now install from source (see this Q&A). E.g., to download CMake 3.12.3 (Linux) to your (existing) ~opensource directory and thereafter unpack it:

$ cd ~/opensource
$ wget https://cmake.org/files/v3.12/cmake-3.12.3.tar.gz
$ tar -xzvf cmake-3.12.3.tar.gz

Install the extracted source:

$ cd ~/opensource/cmake-3.12.3
$ ./bootstrap
$ make -j4
$ sudo make install

This will be installed under /usr/local/bin/, so you might want to close your current terminal, and in a new terminal, try:

$ cmake --version # 3.12.3 ?

Recall from above: that if you'd like to uninstall this particular CMake version, you need to return to the corresponding source and uninstall from there:

$ cd ~/opensource/cmake-3.12.3
$ sudo make uninstall
Build CCLS

(Mostly extracted from CCLS: Getting Started)

Given that the steps above was successful, you are now ready to build the language server. I usually place the project in ~opensource.

$ cd ~/opensource
$ git clone https://github.com/MaskRay/ccls --depth=1
$ cd ccls
$ git submodule update --init
$ cmake -H. -BRelease # This downloads prebuilt clang+llvm from releases.llvm.org
$ cmake --build Release

Installing DOOM Emacs

Personal settings

Clone this repository and place a symlink ~/.doom.d to the emacs/.doom.d folder of this repository.

E.g.:

$ cd ~/opensource
$ git clone https://github.com/dfrib/dot-files.git
$ ln -s ~/opensource/dot-files/emacs/.doom.d ~/.doom.d

DOOM Emacs

Taking parts of Quick Start from develop branch of hlissner/doom-emacs

$ git clone https://github.com/hlissner/doom-emacs ~/.emacs.d
$ cd ~/.emacs.d
$ git checkout develop
$ ./bin/doom quickstart

Every time you modify your ~/.doom.em/init.el, make sure to run:

$ ~/.emacs.d/bin/doom refresh

That should be it!

dot-files's People

Contributors

dfrib avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.