This document provides an introduction and overview of common Unix text editors, including Vim and Emacs. It discusses the basics of using each editor, such as opening and saving files, navigating text, cutting and pasting, and viewing multiple files. It also covers more advanced features like customization options and modes for different file types. The goal is to help users get started with and become more productive using Vim and Emacs on Unix systems.
Emacs is a highly customizable text editor that allows extensions to be added to add functionality like web browsing, debugging code, and more. It has modes for different file types and shortcuts that begin with C- (Control) and M- (Meta) to navigate, search/replace text, cut/paste, open/save files, and more. Emacs is extensible through Emacs Lisp and runs on many operating systems.
Emacs is a highly customizable text editor that provides an IDE for Perl programming. It allows editing multiple files simultaneously, running external tools like compilers, and has various modes for Perl editing, debugging, documentation, and version control. Popular Emacs extensions for Perl include Cperl mode, Sepia, and Emacs::PDE, which provide features like auto-completion, syntax highlighting, and integration with Perl tools.
This document discusses assembly language directives and mixed-mode programming. It provides examples of assembly directives like .byte, .word, .section that reserve data locations and section code. It also discusses using inline assembly in C/C++ programs and the rules for calling assembly routines from high-level languages.
Cmake is a cross-platform build system generator that allows users to specify platform-independent build processes. It generates native makefiles and workspaces that can be used in the compiler IDE of choice. Cmake supports interactive and non-interactive modes to configure projects. It provides options to control code generation, set variables, and obtain help documentation for commands, modules, and other aspects of Cmake.
Linux is an open-source alternative to Microsoft Windows that is freely available and reliable. It has a command line interface and features like virtual memory, networking capabilities, multiple users, and graphical user interfaces. Common Linux commands include ls, cd, mkdir, rmdir, cat, cp, and editors like vi, emacs, nano are used to create and edit files. The Linux directory structure is hierarchical with key directories being /, /home, /usr, /var, and editors allow editing files in different modes like insert and command modes.
This document provides an overview of tools for effective data manipulation including GNU Emacs, the BASH shell, and Ruby. It discusses how GNU Emacs can be used for powerful text editing and file manipulation through keyboard macros and mode-specific commands. The BASH shell and variables are summarized as useful for file manipulation and applying UNIX commands. Ruby is presented as a scripting language well-suited for directly processing file contents, with an example provided to select and rearrange fields from a comma-separated file. References for further learning about these tools are also listed.
This document provides an overview of tools for effective data manipulation including GNU Emacs, the BASH shell, and Ruby. It discusses how GNU Emacs can be used for powerful text editing and file manipulation through keyboard macros and mode-specific commands. The BASH shell and variables are summarized as useful for file manipulation and applying UNIX commands. Ruby is presented as a scripting language well-suited for directly processing file contents, with an example provided to select and rearrange fields from a comma-separated file. References for further learning about these tools are also listed.
This is my presentation for emacs, it contains almost all the basic keys and basic featuers. This slides is created by beamer, you can find the source code at https://github.com/alex8866/Beamer/tree/master/Alex
Emacs is a highly customizable text editor that allows extensions to be added to add functionality like web browsing, debugging code, and more. It has modes for different file types and shortcuts that begin with C- (Control) and M- (Meta) to navigate, search/replace text, cut/paste, open/save files, and more. Emacs is extensible through Emacs Lisp and runs on many operating systems.
Emacs is a highly customizable text editor that provides an IDE for Perl programming. It allows editing multiple files simultaneously, running external tools like compilers, and has various modes for Perl editing, debugging, documentation, and version control. Popular Emacs extensions for Perl include Cperl mode, Sepia, and Emacs::PDE, which provide features like auto-completion, syntax highlighting, and integration with Perl tools.
This document discusses assembly language directives and mixed-mode programming. It provides examples of assembly directives like .byte, .word, .section that reserve data locations and section code. It also discusses using inline assembly in C/C++ programs and the rules for calling assembly routines from high-level languages.
Cmake is a cross-platform build system generator that allows users to specify platform-independent build processes. It generates native makefiles and workspaces that can be used in the compiler IDE of choice. Cmake supports interactive and non-interactive modes to configure projects. It provides options to control code generation, set variables, and obtain help documentation for commands, modules, and other aspects of Cmake.
Linux is an open-source alternative to Microsoft Windows that is freely available and reliable. It has a command line interface and features like virtual memory, networking capabilities, multiple users, and graphical user interfaces. Common Linux commands include ls, cd, mkdir, rmdir, cat, cp, and editors like vi, emacs, nano are used to create and edit files. The Linux directory structure is hierarchical with key directories being /, /home, /usr, /var, and editors allow editing files in different modes like insert and command modes.
This document provides an overview of tools for effective data manipulation including GNU Emacs, the BASH shell, and Ruby. It discusses how GNU Emacs can be used for powerful text editing and file manipulation through keyboard macros and mode-specific commands. The BASH shell and variables are summarized as useful for file manipulation and applying UNIX commands. Ruby is presented as a scripting language well-suited for directly processing file contents, with an example provided to select and rearrange fields from a comma-separated file. References for further learning about these tools are also listed.
This document provides an overview of tools for effective data manipulation including GNU Emacs, the BASH shell, and Ruby. It discusses how GNU Emacs can be used for powerful text editing and file manipulation through keyboard macros and mode-specific commands. The BASH shell and variables are summarized as useful for file manipulation and applying UNIX commands. Ruby is presented as a scripting language well-suited for directly processing file contents, with an example provided to select and rearrange fields from a comma-separated file. References for further learning about these tools are also listed.
This is my presentation for emacs, it contains almost all the basic keys and basic featuers. This slides is created by beamer, you can find the source code at https://github.com/alex8866/Beamer/tree/master/Alex
The document discusses various shell and command line tools to improve productivity for developers, including:
- Bash basics like keyboard navigation, piping, I/O redirection
- Tools like GNU Screen for multitasking and Vim for text editing
- Phing for project automation and deployment
- Benchmarking tools like Apache Bench and Siege
It provides examples of using these tools and resources for further learning shell scripting and command line skills. The overall agenda is around becoming a more efficient "Bash Ninja" through mastering the shell environment.
Linux is an open-source operating system that can be used as a server or standalone OS. It offers advantages like stability, robustness, security, and high performance. Linux directories include / for the root directory, /bin for essential programs, /home for user files, and /var for variable data. Common Linux commands include ls to list files, cd to change directories, grep to search files, and vi/emacs for text editing. Cron jobs allow scheduling commands to run periodically using a crontab file.
Batch files allow running multiple commands with a single command by automating repetitive tasks. They are simple text files with .bat or .cmd extensions containing commands that execute sequentially. The SET command in batch files allows defining, displaying, and removing environment variables as well as performing arithmetic operations. User input can be obtained using SET /P to prompt the user and assign the input to a variable. Batch files improve efficiency by reducing typing, automating complex tasks, and allowing conditional branching with GOTO.
This document provides an overview of the C programming language including its history, standards, structure, and comparisons to Java. It was created by Dennis Ritchie at Bell Labs in the early 1970s to develop the Unix operating system. C is a procedural, medium-level language that provides low-level access to memory allowing it to be compiled directly to machine code for efficiency. It influenced many modern languages but lacks features like exception handling and object-oriented programming.
This document provides an introduction to C++ programming using Code::Blocks. It discusses getting started with Code::Blocks on terminals or one's own laptop. The tutorial outline includes a brief history of C++, an introduction to object-oriented programming, when C++ is a good choice, and creating a first "Hello, World" program in Code::Blocks. The document provides an overview of compiling and running a C++ program in Code::Blocks.
Over 200 Pages of resources and code snippets to learn JavaScript and JavaScript DOM manipulation. JavaScript is the most popular web programming language and this eBook will help you learn more about JavaScript Coding
Makefiles are great for a lot of things and are generally used to build executable programs and libraries from source code but they are not limited to only that. This talk will probably convince you to start adding makefiles in your Python or any other programming project.
The document provides information about the LAMP stack and its components - Linux, Apache, MySQL, and PHP. It then discusses Linux commands, directories, editors, and scheduling tasks using cron jobs. Key points are:
- LAMP is an open source software solution stack using Linux, Apache, MySQL, and PHP.
- Linux commands allow users to navigate files/folders, view processes, manage users, and more.
- Linux directories include /, /boot, /bin, /lib, /usr for storing system and user files and apps.
- Cron jobs allow scheduling commands to run periodically using a crontab file.
C is a general-purpose programming language developed in the 1970s. It has become widely used for systems programming tasks like operating systems or embedded systems. C programs are compiled into machine-readable executable code that can be directly executed by a computer's CPU. Key features of C include modularity through functions, portability across platforms, and high performance due to being close to the hardware level. C programs are made up of functions, variables, expressions, and other elements and are compiled in multiple steps from source code to executable file.
1 CMPS 12M Introduction to Data Structures Lab La.docxtarifarmarie
1
CMPS 12M
Introduction to Data Structures Lab
Lab Assignment 3
The purpose of this lab assignment is to introduce the C programming language, including standard input-output
functions, command line arguments, File IO, and compilation with Makefiles.
Introduction to C
If you are not already familiar with C (or even if you are) it is recommended that you purchase a good C reference
such as C for Java Programmers: a Primer by Charlie McDowell (Lulu.com 2007). The C programming
language is, in a certain sense, the grandparent of Java (C++ being its parent). Java is known as an Object Oriented
Programming (OOP) language, which means that data structures and the procedures which operate on them are
grouped together into one language construct, namely the class. Common behavior amongst classes is specified
explicitly through the mechanism of inheritance. The C programming language on the other hand does not
directly support OOP, although it can be implemented with some effort. C is known as a procedural programming
language, which means that data structures and functions (i.e. procedures) are separate language constructs. There
are no classes, no objects, and no inheritance. New data types in C are created using the typedef and struct
constructs, which will be illustrated in future lab assignments. There is however much common syntax between
Java and C. Many control structures such as loops (while, do-while, for), and branching (if, if-else, switch) are
virtually identical in the two languages. One major difference is in the way program input and output is handled,
both to and from standard IO devices (keyboard and terminal window), and to and from files. The following is
an example of a "Hello World!" program in C.
Example
/*
* hello.c
* Prints "Hello World!" to stdout
*/
#include <stdio.h>
int main(){
printf("Hello World!\n");
return 0;
}
Comments in C are specified by bracketing them between the strings /* and */, and may span several lines. For
instance /* comment */ or
/* comment
comment */
or
/*
* comment
* comment
*/
are all acceptable. With the right compiler flags, Java/C++ style comments are also acceptable.
// comment
// comment
2
You may use any style you like, but throughout this document we will use the older C style /*comments*/.
Any line beginning with # is known as a preprocessor directive. The preprocessor performs the first phase of
compilation wherein these directives, which are literal text substitutions, are performed, making the program
ready for later stages of compilation. The line #include<stdio.h> inserts the standard library header file
stdio.h, which specifies functions for performing standard input-output operations. Notice that preprocessor
commands in C do not end in a semicolon. One can also specify constant macros using the #define preprocessor
directive as follows.
.
The document provides information about the LAMP stack and its components - Linux, Apache, MySQL, and PHP. It then discusses Linux commands, directories, editors, and scheduling tasks using cron jobs. Key points include:
- LAMP is an open source software solution stack using Linux, Apache, MySQL, and PHP. It allows for easy coding and deployment of PHP applications.
- Linux commands covered include cd, ls, pwd, touch, rm. Directories include /, /boot, /bin, /usr, /var. Editors discussed are vi and emacs.
- Cron jobs allow scheduling commands to run on a set schedule using crontab files. Syntax includes minutes, hours, day of month, month
The document discusses C programming and embedded C programming concepts. It covers the differences between C and embedded C, embedded C constraints, how to make code more readable through commenting and documenting memory mapped devices. It also discusses data structures, stacks, queues, and provides code examples for stack implementation and operations using arrays.
The document provides information about the LAMP stack and its components - Linux, Apache, MySQL, and PHP. It then discusses Linux commands, directories, editors, and scheduling tasks using cron jobs. Key details include that LAMP is an open source software stack using these components, Linux commands allow managing files and systems, directories structure the Linux filesystem, vi and cron are tools for text editing and automated tasks.
Compiler Construction | Lecture 1 | What is a compiler?Eelco Visser
This document provides an overview of the CS4200 Compiler Construction course at TU Delft. It discusses the organization of the course into two parts: CS4200-A which covers compiler concepts and techniques through lectures, papers, and homework assignments; and CS4200-B which involves building a compiler for a subset of Java as a semester-long project. Key topics covered include the components of a compiler like parsing, type checking, optimization, and code generation; intermediate representations; and different types of compilers.
This document discusses various tools for programming in Linux, including:
1. The GNU C Compiler (gcc) which compiles C, C++, and Objective-C programs. It performs preprocessing, compilation, assembly, and linking.
2. Make and automake which simplify building projects with multiple source files by tracking dependencies and only rebuilding changed files. Makefiles define rules and variables to build targets.
3. Popular programming languages for Linux including Java, JavaScript, PHP, Python, and others.
4. Graphical development tools like IDEs, SDKs, and clients for developing KDE and GNOME applications. Eclipse, NetBeans, and Visual Studio Code are mentioned as IDE options.
- The document discusses various text editing and file transfer tools available in Unix systems including Emacs, vi, FTP, pine, and lpr. It focuses on using Emacs as a text editor, including how to open and save files, navigate text, and get help. It also covers using FTP and pine to transfer files between systems and access email from within Unix.
C is a procedural programming language. It was developed in the early 1970s and is still widely used. The document provides an overview of key aspects of C including data types, variables, constants, operators, control statements like if/else, and functions. It also discusses C programming concepts like low-level vs high-level languages, header files, comments, escape sequences, and more. The document serves as a useful introduction and reference for someone learning the basics of the C programming language.
This document provides an introduction to the C programming language. It discusses the history of C, how it was developed as a general purpose language, and why it is still widely used today. The key points covered include:
- C was created in the early 1970s and was the language used to write the UNIX operating system. It provides efficiency and portability.
- The document reviews basic C concepts like variables, data types, operators, functions, and control structures.
- It also describes the typical stages of a C software development process: requirements, analysis, design, implementation, testing, and debugging.
This document provides an overview of core Linux commands and system administration. It covers basic Unix commands for working on the command line, command syntax, command completion, pathname wildcards, shells, and editing commands using the Readline Library. The document is distributed under the GNU Free Documentation License and allows verbatim copying and distribution with or without changes.
This document provides an introduction to the C programming language. It discusses C's history, why it is useful, and the basics of C programming. C was created in the early 1970s and became widely popular due to its ability to produce efficient, portable code. It discusses C's roots in earlier languages like B and BCPL. The document also covers C standard libraries, basic C programs and syntax, variables, operators, and decision making in C.
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxSitimaJohn
Ocean Lotus cyber threat actors represent a sophisticated, persistent, and politically motivated group that poses a significant risk to organizations and individuals in the Southeast Asian region. Their continuous evolution and adaptability underscore the need for robust cybersecurity measures and international cooperation to identify and mitigate the threats posed by such advanced persistent threat groups.
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
The document discusses various shell and command line tools to improve productivity for developers, including:
- Bash basics like keyboard navigation, piping, I/O redirection
- Tools like GNU Screen for multitasking and Vim for text editing
- Phing for project automation and deployment
- Benchmarking tools like Apache Bench and Siege
It provides examples of using these tools and resources for further learning shell scripting and command line skills. The overall agenda is around becoming a more efficient "Bash Ninja" through mastering the shell environment.
Linux is an open-source operating system that can be used as a server or standalone OS. It offers advantages like stability, robustness, security, and high performance. Linux directories include / for the root directory, /bin for essential programs, /home for user files, and /var for variable data. Common Linux commands include ls to list files, cd to change directories, grep to search files, and vi/emacs for text editing. Cron jobs allow scheduling commands to run periodically using a crontab file.
Batch files allow running multiple commands with a single command by automating repetitive tasks. They are simple text files with .bat or .cmd extensions containing commands that execute sequentially. The SET command in batch files allows defining, displaying, and removing environment variables as well as performing arithmetic operations. User input can be obtained using SET /P to prompt the user and assign the input to a variable. Batch files improve efficiency by reducing typing, automating complex tasks, and allowing conditional branching with GOTO.
This document provides an overview of the C programming language including its history, standards, structure, and comparisons to Java. It was created by Dennis Ritchie at Bell Labs in the early 1970s to develop the Unix operating system. C is a procedural, medium-level language that provides low-level access to memory allowing it to be compiled directly to machine code for efficiency. It influenced many modern languages but lacks features like exception handling and object-oriented programming.
This document provides an introduction to C++ programming using Code::Blocks. It discusses getting started with Code::Blocks on terminals or one's own laptop. The tutorial outline includes a brief history of C++, an introduction to object-oriented programming, when C++ is a good choice, and creating a first "Hello, World" program in Code::Blocks. The document provides an overview of compiling and running a C++ program in Code::Blocks.
Over 200 Pages of resources and code snippets to learn JavaScript and JavaScript DOM manipulation. JavaScript is the most popular web programming language and this eBook will help you learn more about JavaScript Coding
Makefiles are great for a lot of things and are generally used to build executable programs and libraries from source code but they are not limited to only that. This talk will probably convince you to start adding makefiles in your Python or any other programming project.
The document provides information about the LAMP stack and its components - Linux, Apache, MySQL, and PHP. It then discusses Linux commands, directories, editors, and scheduling tasks using cron jobs. Key points are:
- LAMP is an open source software solution stack using Linux, Apache, MySQL, and PHP.
- Linux commands allow users to navigate files/folders, view processes, manage users, and more.
- Linux directories include /, /boot, /bin, /lib, /usr for storing system and user files and apps.
- Cron jobs allow scheduling commands to run periodically using a crontab file.
C is a general-purpose programming language developed in the 1970s. It has become widely used for systems programming tasks like operating systems or embedded systems. C programs are compiled into machine-readable executable code that can be directly executed by a computer's CPU. Key features of C include modularity through functions, portability across platforms, and high performance due to being close to the hardware level. C programs are made up of functions, variables, expressions, and other elements and are compiled in multiple steps from source code to executable file.
1 CMPS 12M Introduction to Data Structures Lab La.docxtarifarmarie
1
CMPS 12M
Introduction to Data Structures Lab
Lab Assignment 3
The purpose of this lab assignment is to introduce the C programming language, including standard input-output
functions, command line arguments, File IO, and compilation with Makefiles.
Introduction to C
If you are not already familiar with C (or even if you are) it is recommended that you purchase a good C reference
such as C for Java Programmers: a Primer by Charlie McDowell (Lulu.com 2007). The C programming
language is, in a certain sense, the grandparent of Java (C++ being its parent). Java is known as an Object Oriented
Programming (OOP) language, which means that data structures and the procedures which operate on them are
grouped together into one language construct, namely the class. Common behavior amongst classes is specified
explicitly through the mechanism of inheritance. The C programming language on the other hand does not
directly support OOP, although it can be implemented with some effort. C is known as a procedural programming
language, which means that data structures and functions (i.e. procedures) are separate language constructs. There
are no classes, no objects, and no inheritance. New data types in C are created using the typedef and struct
constructs, which will be illustrated in future lab assignments. There is however much common syntax between
Java and C. Many control structures such as loops (while, do-while, for), and branching (if, if-else, switch) are
virtually identical in the two languages. One major difference is in the way program input and output is handled,
both to and from standard IO devices (keyboard and terminal window), and to and from files. The following is
an example of a "Hello World!" program in C.
Example
/*
* hello.c
* Prints "Hello World!" to stdout
*/
#include <stdio.h>
int main(){
printf("Hello World!\n");
return 0;
}
Comments in C are specified by bracketing them between the strings /* and */, and may span several lines. For
instance /* comment */ or
/* comment
comment */
or
/*
* comment
* comment
*/
are all acceptable. With the right compiler flags, Java/C++ style comments are also acceptable.
// comment
// comment
2
You may use any style you like, but throughout this document we will use the older C style /*comments*/.
Any line beginning with # is known as a preprocessor directive. The preprocessor performs the first phase of
compilation wherein these directives, which are literal text substitutions, are performed, making the program
ready for later stages of compilation. The line #include<stdio.h> inserts the standard library header file
stdio.h, which specifies functions for performing standard input-output operations. Notice that preprocessor
commands in C do not end in a semicolon. One can also specify constant macros using the #define preprocessor
directive as follows.
.
The document provides information about the LAMP stack and its components - Linux, Apache, MySQL, and PHP. It then discusses Linux commands, directories, editors, and scheduling tasks using cron jobs. Key points include:
- LAMP is an open source software solution stack using Linux, Apache, MySQL, and PHP. It allows for easy coding and deployment of PHP applications.
- Linux commands covered include cd, ls, pwd, touch, rm. Directories include /, /boot, /bin, /usr, /var. Editors discussed are vi and emacs.
- Cron jobs allow scheduling commands to run on a set schedule using crontab files. Syntax includes minutes, hours, day of month, month
The document discusses C programming and embedded C programming concepts. It covers the differences between C and embedded C, embedded C constraints, how to make code more readable through commenting and documenting memory mapped devices. It also discusses data structures, stacks, queues, and provides code examples for stack implementation and operations using arrays.
The document provides information about the LAMP stack and its components - Linux, Apache, MySQL, and PHP. It then discusses Linux commands, directories, editors, and scheduling tasks using cron jobs. Key details include that LAMP is an open source software stack using these components, Linux commands allow managing files and systems, directories structure the Linux filesystem, vi and cron are tools for text editing and automated tasks.
Compiler Construction | Lecture 1 | What is a compiler?Eelco Visser
This document provides an overview of the CS4200 Compiler Construction course at TU Delft. It discusses the organization of the course into two parts: CS4200-A which covers compiler concepts and techniques through lectures, papers, and homework assignments; and CS4200-B which involves building a compiler for a subset of Java as a semester-long project. Key topics covered include the components of a compiler like parsing, type checking, optimization, and code generation; intermediate representations; and different types of compilers.
This document discusses various tools for programming in Linux, including:
1. The GNU C Compiler (gcc) which compiles C, C++, and Objective-C programs. It performs preprocessing, compilation, assembly, and linking.
2. Make and automake which simplify building projects with multiple source files by tracking dependencies and only rebuilding changed files. Makefiles define rules and variables to build targets.
3. Popular programming languages for Linux including Java, JavaScript, PHP, Python, and others.
4. Graphical development tools like IDEs, SDKs, and clients for developing KDE and GNOME applications. Eclipse, NetBeans, and Visual Studio Code are mentioned as IDE options.
- The document discusses various text editing and file transfer tools available in Unix systems including Emacs, vi, FTP, pine, and lpr. It focuses on using Emacs as a text editor, including how to open and save files, navigate text, and get help. It also covers using FTP and pine to transfer files between systems and access email from within Unix.
C is a procedural programming language. It was developed in the early 1970s and is still widely used. The document provides an overview of key aspects of C including data types, variables, constants, operators, control statements like if/else, and functions. It also discusses C programming concepts like low-level vs high-level languages, header files, comments, escape sequences, and more. The document serves as a useful introduction and reference for someone learning the basics of the C programming language.
This document provides an introduction to the C programming language. It discusses the history of C, how it was developed as a general purpose language, and why it is still widely used today. The key points covered include:
- C was created in the early 1970s and was the language used to write the UNIX operating system. It provides efficiency and portability.
- The document reviews basic C concepts like variables, data types, operators, functions, and control structures.
- It also describes the typical stages of a C software development process: requirements, analysis, design, implementation, testing, and debugging.
This document provides an overview of core Linux commands and system administration. It covers basic Unix commands for working on the command line, command syntax, command completion, pathname wildcards, shells, and editing commands using the Readline Library. The document is distributed under the GNU Free Documentation License and allows verbatim copying and distribution with or without changes.
This document provides an introduction to the C programming language. It discusses C's history, why it is useful, and the basics of C programming. C was created in the early 1970s and became widely popular due to its ability to produce efficient, portable code. It discusses C's roots in earlier languages like B and BCPL. The document also covers C standard libraries, basic C programs and syntax, variables, operators, and decision making in C.
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxSitimaJohn
Ocean Lotus cyber threat actors represent a sophisticated, persistent, and politically motivated group that poses a significant risk to organizations and individuals in the Southeast Asian region. Their continuous evolution and adaptability underscore the need for robust cybersecurity measures and international cooperation to identify and mitigate the threats posed by such advanced persistent threat groups.
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
5th LF Energy Power Grid Model Meet-up SlidesDanBrown980551
5th Power Grid Model Meet-up
It is with great pleasure that we extend to you an invitation to the 5th Power Grid Model Meet-up, scheduled for 6th June 2024. This event will adopt a hybrid format, allowing participants to join us either through an online Mircosoft Teams session or in person at TU/e located at Den Dolech 2, Eindhoven, Netherlands. The meet-up will be hosted by Eindhoven University of Technology (TU/e), a research university specializing in engineering science & technology.
Power Grid Model
The global energy transition is placing new and unprecedented demands on Distribution System Operators (DSOs). Alongside upgrades to grid capacity, processes such as digitization, capacity optimization, and congestion management are becoming vital for delivering reliable services.
Power Grid Model is an open source project from Linux Foundation Energy and provides a calculation engine that is increasingly essential for DSOs. It offers a standards-based foundation enabling real-time power systems analysis, simulations of electrical power grids, and sophisticated what-if analysis. In addition, it enables in-depth studies and analysis of the electrical power grid’s behavior and performance. This comprehensive model incorporates essential factors such as power generation capacity, electrical losses, voltage levels, power flows, and system stability.
Power Grid Model is currently being applied in a wide variety of use cases, including grid planning, expansion, reliability, and congestion studies. It can also help in analyzing the impact of renewable energy integration, assessing the effects of disturbances or faults, and developing strategies for grid control and optimization.
What to expect
For the upcoming meetup we are organizing, we have an exciting lineup of activities planned:
-Insightful presentations covering two practical applications of the Power Grid Model.
-An update on the latest advancements in Power Grid -Model technology during the first and second quarters of 2024.
-An interactive brainstorming session to discuss and propose new feature requests.
-An opportunity to connect with fellow Power Grid Model enthusiasts and users.
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfChart Kalyan
A Mix Chart displays historical data of numbers in a graphical or tabular form. The Kalyan Rajdhani Mix Chart specifically shows the results of a sequence of numbers over different periods.
Generating privacy-protected synthetic data using Secludy and MilvusZilliz
During this demo, the founders of Secludy will demonstrate how their system utilizes Milvus to store and manipulate embeddings for generating privacy-protected synthetic data. Their approach not only maintains the confidentiality of the original data but also enhances the utility and scalability of LLMs under privacy constraints. Attendees, including machine learning engineers, data scientists, and data managers, will witness first-hand how Secludy's integration with Milvus empowers organizations to harness the power of LLMs securely and efficiently.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Main news related to the CCS TSI 2023 (2023/1695)Jakub Marek
An English 🇬🇧 translation of a presentation to the speech I gave about the main changes brought by CCS TSI 2023 at the biggest Czech conference on Communications and signalling systems on Railways, which was held in Clarion Hotel Olomouc from 7th to 9th November 2023 (konferenceszt.cz). Attended by around 500 participants and 200 on-line followers.
The original Czech 🇨🇿 version of the presentation can be found here: https://www.slideshare.net/slideshow/hlavni-novinky-souvisejici-s-ccs-tsi-2023-2023-1695/269688092 .
The videorecording (in Czech) from the presentation is available here: https://youtu.be/WzjJWm4IyPk?si=SImb06tuXGb30BEH .
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
Webinar: Designing a schema for a Data WarehouseFederico Razzoli
Are you new to data warehouses (DWH)? Do you need to check whether your data warehouse follows the best practices for a good design? In both cases, this webinar is for you.
A data warehouse is a central relational database that contains all measurements about a business or an organisation. This data comes from a variety of heterogeneous data sources, which includes databases of any type that back the applications used by the company, data files exported by some applications, or APIs provided by internal or external services.
But designing a data warehouse correctly is a hard task, which requires gathering information about the business processes that need to be analysed in the first place. These processes must be translated into so-called star schemas, which means, denormalised databases where each table represents a dimension or facts.
We will discuss these topics:
- How to gather information about a business;
- Understanding dictionaries and how to identify business entities;
- Dimensions and facts;
- Setting a table granularity;
- Types of facts;
- Types of dimensions;
- Snowflakes and how to avoid them;
- Expanding existing dimensions and facts.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
1. Introduction To Unix Editing Tools
Center for Computational Research
University at Buffalo
State University of New York
CCR Summer Seminar Series, 2012
6/20/2012 CCR Summer Workshop Series - Editors 1
Steve Gallo and Andrew Bruno
2. Introduction
There are many editors to choose from, both graphical and text-
based.
• VIM
• Emacs
• Gedit
• Nano
• Sublime Text 2
… and the list goes on
http://en.wikipedia.org/wiki/List_of_text_editors
CCR Summer Workshop Series - Editors
6/20/2012 2
3. Review – Environment Variables
Environment variables control various aspects of your environment
and applications. These can be set in your login scripts, by
applications, or on the command line
bash: export EDITOR=/usr/bin/emacs
csh: setenv VISUAL /usr/bin/vi
Useful environment variables
• EDITOR and VISUAL – set the editor used by various applications
• PATH – A colon-separated list of directories searched for
applications to run (e.g., PATH=/bin:/usr/bin:/usr/local/bin)
• HOME – Your home directory on the machine
CCR Summer Workshop Series - Editors
6/20/2012 3
4. Review – Job Control
CCR Summer Workshop Series - Editors
6/20/2012 4
Unix supports the notion of foreground and background processes. When you run an
application (i.e., a job) from the command line it typically runs in the foreground, but you
can also run it in the background using the “&” operator.
Use C-z to suspend an job and return to the shell. Type “bg” to continue running the job in
the background or “fg” to return to the job. Useful for suspending a job to perform a task
and then returning to it. For example,
# Run emacs in the foreground. The shell waits for you to exit emacs.
$ emacs test.c
# Run emacs in the background - you are returned to the shell.
$ emacs test.c &
$
# Use vi to edit a file but you forgot to do something and don’t want to lose your
place!
$ vi test.c
^Z
# The less command is now suspended
$ cp /some/file .
$ jobs
[1]+ Stopped vi test.c
$ fg
# Now you’re back in vi where you left off
5. Editors
Emacs and Vim are commonly installed on Unix systems.
Topics
• Opening and saving files, navigating, selection, cut-and-paste
• Auto-completion, syntax highlighting, modes
• Advanced editing: buffers, regions
• Exercises
Advanced Topics for Programmers
• Customizations
• Remote editing
CCR Summer Workshop Series - Editors
6/20/2012 5
≠
6. Emacs
CCR Summer Workshop Series - Editors
6/20/2012 6
Guided Tour
http://www.gnu.org/software/emacs/tour/
Online Manual
http://www.gnu.org/software/emacs/manual/html_mono/emacs.html
Need a better editor for Windows? Use Emacs!
http://ftp.gnu.org/gnu/emacs/windows/
Help from within Emacs
M-x info
M-x help
7. Emacs – Notation
CCR Summer Workshop Series - Editors
6/20/2012 7
M-x is used to run a command
Stands for Meta-x (modifier) and means press the escape key followed by “x”
For example, M-x tetris starts a tetris game
Use tab twice to see all commands that start with a string or all available options!
C-x is a shortcut for a command, typically followed by a command key
Press the control key at the same time as “x” typically followed by a shortcut key
For example, C-x C-s will save your file
8. Emacs – Entering and Exiting Files
CCR Summer Workshop Series - Editors
6/20/2012 8
Two modes of operation: In its own window (graphical mode) or within a terminal
(text mode - useful for editing files remotely).
How do I exit Emacs and save my work?
# Run emacs in “no window” mode within a terminal
$ emacs –nw GoogleScholar.php
# Run emacs in its own window (in the background)
$ emacs GoogleScholar.php &
$
Key Description
C-x C-s Save a buffer to its file
C-x s Save all modified buffers
C-x C-w Save as
C-x C-c Exit (asks to save any modified buffers)
9. The Emacs Window
CCR Summer Workshop Series - Editors
6/20/2012 9
Cursor position Mode
Minibuffer
Buffer status
Buffer name
Buffer
Cursor (point)
10. Emacs – Buffers and Regions
CCR Summer Workshop Series - Editors
6/20/2012 10
Buffers
• Any text being edited (such as a file) is contained in a buffer
• A buffer doesn’t have to contain data from a file!
• Every buffer has a name - typically the name of the file
• You can switch between buffers (using C-leftmouse in graphical mode or C-x b)
• You can split buffers to view several on the screen at once
Regions
• A region is a marked area within a buffer (e.g., a selection)
• Many operations can be performed on an entire buffer or a region
Region
Buffer
11. Emacs – Moving Around
CCR Summer Workshop Series - Editors
6/20/2012 11
The arrow keys let you move around easily within Emacs, but to be more
productive you can also use command keys!
Why use C-a instead of the home key or C-f instead of the arrow? Isn’t that crazy?
No! If you have one hand on the keyboard and one on the mouse every time you
take your hand off of the mouse to click a key it slows you down. The same is true
for copy and paste – if you take your hands off the keyboard to use the mouse
menu it slows you down. Learning shortcuts can make you more productive.
Key Description
arrows up, down, left, right
C-p , C-n , C-b , C-f up, down, left, right
C-arrow Same as arrow but moves a whole word
C-a (or Home key) Move to the beginning of the line (also works in the shell)
C-e (or End key) Move to the end of the line (also works in the shell)
C-v and M-v Page down and Page up
M-g g Go to line (I aliased this to M-: and yes I stole it from vi!)
M-< and M-> Move to the top of the buffer and move to the bottom
12. Emacs – Cut and Paste
CCR Summer Workshop Series - Editors
6/20/2012 12
Cut and paste in emacs is called “kill” and “yank”. Killing text puts that text into a
buffer that you can then yank back out.
Cut and paste also works with regions. Select a region using the mouse in
graphical mode or command keys. Move the cursor to another location and kill
the text in the region. Regions are useful – more to come.
Key Description
C-k Kill a line from the cursor to the end of the line
C-y Yank the contents of the kill buffer back into the document
C-d Delete a single character under the cursor
Backspace Delete the character before the cursor
M-x cua-mode Don’t like C-k and C-y? Set Common User Access (CUA) mode!
C-x, C-c, C-v, and C-z become cut, copy, paste, and undo.
Key Description
C-<space> Set the mark at the cursor
C-w Kill from the mark to the cursor
13. Emacs – Working With Rectangles
CCR Summer Workshop Series - Editors
6/20/2012 13
We often need to operate on rectangular regions of text within a document.
Delete a column, move it elsewhere, clear a column, etc. To select a rectangle, set
the mark at one corner and move the cursor to the opposite corner.
Key Description
C-x r k Kill the rectangle
C-x r y Yank a killed rectangle
C-x r o Insert blank space into the marked rectangle, moving the current
contents to the right.
C-x r c Clear the rectangle leaving a blank space
14. Emacs – Opening Files
CCR Summer Workshop Series - Editors
6/20/2012 14
Emacs can open several files at once, either from the command-line or within
Emacs itself.
When opening a file from within emacs you can use tab-completion to browse for
a file or enter dired (directory edit) mode to select a file.
Key Description
C-x C-f Browse or open a file
C-x C-r Browse or open a file read-only
C-x k Kill the current buffer and close the file
# Open two files. The files will be displayed in a split window
$ emacs GoogleScholar.php sample.txt &
15. Emacs – Viewing Multiple Files
CCR Summer Workshop Series - Editors
6/20/2012 15
You’ll often be working on multiple files and will want to view them at the same
time. You can open multiple buffers or windows (frames), split the window
horizontally, or split the window vertically.
Key Description
C-x 2 Split the current buffer horizontally into two
C-x 3 Split the current buffer vertically into two
C-x o Switch to other buffer (cycles through multiple buffers)
C-x 0 Delete the current window
C-x 1 Delete all windows EXCEPT the current window
C-x 5 2 Open a new window (frame in Emacs-speak)
16. Emacs – Modes
CCR Summer Workshop Series - Editors
6/20/2012 16
Every buffer in Emacs has a mode associated with it based on the type of data
being displayed. Modes modify Emacs’ behavior to support common operations
on the type of file being edited and sets the mode automatically based on the file
extension.
Indentation, highlighting of expressions and key words, and other language-
specific features are affected by the mode.
Modes are highly customizable (but that is an advanced topic…)
Key Description
M-x php-mode Automatically indents code blocks, adds highlighting
M-x text-mode Sets text mode. Automatically wraps text at 80 characters (can be
changed)
M-x auto-fill You can turn off auto fill mode while in text mode. This can be
useful for editing data files.
17. Emacs – Useful Features
CCR Summer Workshop Series - Editors
6/20/2012 17
Symbol completion while programming
Entering multiple characters at once
Adaptive fill mode
Undo
Key Description
M-<tab> Cycle through possible symbol completions
<esc> <number> <char> Insert <number> of <char>
M-x filladapt-mode Enable adaptive fill mode
C-x u Undo recent editing
<esc> 80 -
--------------------------------------------------------------------------------
scholarL M-<tab>
scholarList
scholarListOfPublications
…
- Create Simon & Carol an iRods account
- Multiple zones connected to 2 different irods instances? (split Michigan
public/private)
- Search fields
- Rule to read metadata from imported file and add to metadata
- Create Simon & Carol an iRods account Multiple zones connected to 2 different
- irods instances? (split Michigan public/private) Search fields Rule to read
- metadata from imported file and add to metadata
19. Introduction
“Emacs is a hideous monstrosity, but a
functional one. On the other hand, vi is a
masterpiece of elegance. Sort of like a Swiss
Army knife versus a rapier.”
--The Cult of vi
6/20/2012 CCR Summer Workshop Series - Editors 19
20. History of vi
• vi was originally written by Bill Joy in 1976
while at Berkeley
• Bill Joy is a co-founder of Sun Microsystems
and creator of csh among many others
• vi is based off ex and ed, the original line
editor for Unix written by Ken Thompson
6/20/2012 CCR Summer Workshop Series - Editors 20
21. History of vi..
• vi has many ports and clones
• VIM is a vi clone written by Bram Moolenaar
that adds many advanced features
• VIM - Vi IMproved
• First public release was in 1991
• VIM is included with almost every Linux
distribution
• Also has a GUI version called gVim
6/20/2012 CCR Summer Workshop Series - Editors 21
22. VIM Basics
CCR Summer Workshop Series - Editors
6/20/2012 22
VIM is a modal editor
• Three basic modes of operation: insert, visual, and command
• By default, VIM is run in command mode. Each mode is accessed by pressing a
key and ESC returns to command mode.
• To insert text you need to switch to insert mode by pressing i
• Visual mode allows you to highlight text. To enter visual mode press v
• To view the VIM user manual type :help or :help [command]
• Even will explain the meaning of life :help 42
23. VIM – Entering and Exiting Files
CCR Summer Workshop Series - Editors
6/20/2012 23
Type vim (or just vi) in the shell to start. When vim starts you’ll be in normal
(command) mode.
How do I exit vim and save my work?
# Run vim
$ vim hello-world.c
Command Description
:w Save a buffer to its file
:wa Save all modified buffers
:w newfile Save as
:q Exit
:q! Exit without saving changes
24. VIM – Moving Around
CCR Summer Workshop Series - Editors
6/20/2012 24
While in command mode:
Try using the “home row” for moving around. It allows you to navigate your file
without moving your hand over to the arrow keys.
Key Description
k,j,l,h up, down, left, right
arrows up, down, left, right
w Same as above but moves a whole word
0 (zero) Move to the beginning of the line
$ Move to the end of the line
C-f and C-b Page down and Page up
12g or :12<Enter> Go to line, (example go to line 12)
gg G Move to the top of the buffer and move to the bottom
ESC Return to command mode
/ ? Search forward and Search reverse
yy p Copy entire line and paste
k
h l
j
25. VIM Resources
• VIM – http://www.vim.org
• Cheat Sheets –
http://www.viemu.com/a_vi_vim_graphical_c
heat_sheet_tutorial.html
6/20/2012 CCR Summer Workshop Series - Editors 25