- GNU Emacs
- Emacs Video Tutorial
- Emacs From Scratch #1 - Getting Started with a Basic Usable Configuration
Coming from a click, touch, drag and drop world, command line tools and navigation might seem tricky at first. Don't fret. They are not difficult to learn, they are just not intuitive yet. As you use them daily, they will become a part of you. Vi has two primary modes:
- Command mode: Let's you execute commands like save, quit, formats, e.t.c.
- Insert mode: When you type to populate a file.
To tell what mode you are in, watch the bottom left corner of your screen. Command mode displays nothing. Insert mode displays:
---INSERT---
When you open Vi, the default mode is the command mode. To start typing, press 'i' to enter into insert mode. Press ESC key to go back into command mode.
How to exit Vi:
You must be in command mode to execute these commands.
To quit an unedited document:
:q
To quit an edited document without saving changes:
:q!
To save progress without quitting
:w
To save and quit
:wq or :x
Other great commands:
- :set number - This command displays the numbering for each line. Makes it easy to trace mistakes and debug code.
- gg - Takes the cursor to the top of the file. Faster way to navigate than using arrow keys.
- dd - Deletes the entire line where the cursor is placed. Faster than delete or backspace button. Can also be used to paste the line elsewhere when you press 'p'.
- ?keyword - Used to search keywords in a document. For example, ?printf will look for all instances of 'printf'. If there are multiple instances, use 'n' and 'N' to jump between them forwards or backwards respectively.
How to debug code in the command line using vi:
- Here's a simple code sample that prints a statement three times. Please note that this code was written specifically for demonstration purposes. The file name is saved as 'debug.c'
- When you run a betty check on the code, it gives you an error message. Notice the number '27' in front of the file name 'debug.c:27'. That number is the line number where the error occurred.
- When you open the code in Vi again, type :set number and pressed Enter to display line numbers in the code. This makes it easy to track line 27.
- Two errors were flagged. "space prohibited before semicolon" and "void function return statements are not generally useful". For the sake of simplicity, I employed a basic fix.
- Now when you run betty again, the code will be error free.
- To recap, check for the error line, read and understand the error message and address it accordingly. You can always ask your peers to help you interpret error messages that you don't yet understand. I hope this helps, however simplistic it might appear. Keep doing hard things!
- Video Tutorial on Shell Navigation
- Shell Navigation Basics Part 1
- Shell Navigation Basics Part 2
- Manipulating Files
- Everything you need to know About GIT and GITHUB
- Set up Git
- About READMEs
- How to Write a Git Commit Message
- Git Branching
- Git Pull
- Introduction to Version Control Systems | Git and Github for Beginners #1
- What Is “The Shell”?
- Navigation
- Looking Around
- A Guided Tour
- Manipulating Files
- Working With Commands
- Reading Man pages
- Keyboard shortcuts for Bash
- LTS
- Shebang
- Shell Scripting Tutorial for Beginners 1 - Introduction
- Shell For Absolute Beginners(Part 1)
- Shell For absolute Beginners. (Part 2 - basic commands)
Expansions Shell Arithmetic Variables Shell initialization files The alias Command Technical Writing
- Pseudocode, flowchart, Algorithm and Whiteboarding.
- All you need to know about static libraries.
- Difference between static and dynamic libraries.
- Varaiable functions
- Understanding static libraries
- Static libraries for beginners.
- Nested loops
- Printf function
- Variadic function
- Printf project playlist
- Learn different operators in C
- Bit manipulations
- Everything you need to know to start with C pdf
- Hello world
- Dennis Ritchie
- “C” Programming Language: Brian Kernighan
- Why C programming is awesome
- Learning to program in C part 1
- Learning to program in C part 2
- Understanding C compilation process
- Betting coding style
- Hash-bang under the hood
- C vs C++
- Free Programming Tutorials
- Jenny Lectures
- Keywords and identifiers
- Integers
- Arithmetic Operators
- If statements in C
- If, else statements
- Relational Operation
- Logical Operators
- while Loop in C
Video Resouses
Video Resources_
- Pointer to pointer
- Pointer to pointer with examples
- Multi_dimentional arrays in C
- Two-dimensional (2D) arrays in C programming with
Video Resources
- What on earth is recursion
- Programming tutorials, recursion part 1
- Programming tutorials, recursion part 2
- What Is A “C” Library? What Is It Good For
- Creating A Static “C” Library Using “ar” and “ranlib”
- Using A “C” Library In A Program
- What is difference between Dynamic and Static library(Static and Dynamic linking) (stop at 4:44)
- Automatic and dynamic allocation, malloc and free
- 0x0a - malloc & free - quick overview.pdf
- Dynamic memory allocation in C - malloc calloc realloc free (stop at 6:50)
- Do I cast the result of malloc
- Structures.pdf
- struct (C programming language)
- Documentation: structures
- Typedef and structures.pdf
- typedef
- The Lost Art of C Structure Packing
- Understanding C program Compilation Process
- Object-like Macros
- Macro Arguments
- Pre Processor Directives in C
- The C Preprocessor
- Standard Predefined Macros
- include guard
- Common Predefined Macros
- Function Pointer in C
- Pointers to functions
- Function Pointers in C / C++
- why pointers to functions?
- Everything you need to know about pointers in C
- What is difference between Dynamic and Static library (Static and Dynamic linking)
- create dynamic libraries on Linux
A data structure is a named location that can be used to store and organize data. And, an algorithm is a collection of steps to solve a particular problem.
- How do I use extern to share variables between source files in C?
- Stacks and Queues in C
- Stack operations
- Queue operations
- What is a HashTable Data Structure - Introduction to Hash Tables , Part 0
- Hash function
- Hash table
- All about hash tables
- why hash tables and not arrays