SlideShare uma empresa Scribd logo
1 de 25
Does the world end if you stop using Visual Studio? Hint: No.
Who Am I? Garry Stewart I do tehsoftwarez Contact me	 garry.stewart@gmail.com @garry_stewart http://www.garry-stewart.com/
IDE Addicition General text editing Syntax highlighting Intellisense WYSIWYG Editors Visualisation tools Code generation Build management & compilation Code navigation File management Source control Integrated debugging Etc…
This used to be Less Complicated, Right?
So let’s All Develop In Notepad!
What’s the Alternative? + ==
Before We Start.. Current directory is king %PATH% matters Command line tools are your friend
There are these things called modes… Lots of different modes Insert Visual Normal And More! You will spend most of your time in Normal mode. You cannot enter text in this mode
Basic Editing :help operator :help scrolling Everything has a count 5dw == delete the next 5 words Rinse and repeat . Repeats the last command
Stuff to Get Into if We Have Time :help buffers Syntax highlighting Creating functions and macros Refactoring Spell checking
Ultimate Power Fully scriptable On the fly via commands Plugin architecture Built in Regex engine Reassign key commands Interact with the command line Macros No COM required to create extensions!
Navigating Code :help various-motions Currently “broken” for C# if you have a namespace It’s all just regex, so we can extend this to work with
Interacting With The Command Line :! <command> == execute a command (opens a new window) :r ! <command> == read the output of the console operation into the current buffer Have a custom function in my _vimrc to print output in a new window
QuickFix QuickFix == list of search results with file navigation :copen or :cw " Open the quickfix window :ccl   " Close it :cn    " Go to the next error in the window :cnf   " Go to the first error in the next file :colder " Look at older results :cnewer" Look at newer results Global to all windows
QuickFix Example: Find In Files :vimgrep (or :grep if you have the actual program) Fills the QuickFix list :vimgrep /[pattern]/[g][j] {file} E.g. :vimgrep /public/j ./**/*.cs [g] == Include ALL results as separate lines [j] == Don’t jump to first result Can also use :lvimgrep (or :lgrepif you have the actual program) Fills “location list” which is local to current window Use :lw or :lopen to see this :lolder and :lnewer to navigate search result history
Building a Project :make Uses makeprg to tell what to execute MSBuild in my case Uses errorformat to parse build output for errors Redirects errors to QuickFix window Equivalent of Visual Studio’s build error list
Source Control Integration Didn’t we already cover this with command line integration???? I’m using git RunShellCommand to the rescue again!
Markers Basically bookmarks Some set by Vim functions Can be set by you :help mark-motions
Tags Build them using Exuberant Tags (ctags.exe) :tag <tagName> Jumps to a tag :tags Gives a list of all tags CTRL-g == navigate g] == list Sets a mark upon navigation Allows you to return to the same spot
Code Completion Sort of works Can’t get it working like Intellisense with C# Works fine in C/C++/Java/Pretty much anything else Several types of completion Omni Completion In File completion Many more..
Extensions Huge plugin community Some samples :NERDTree Basically Solution Explorer :TlistToggle Class view using Tags
Folding Code Yes, you can do it No, I haven’t looked at it Think of this as an equivalent to #region Regions are evil Useful when building plugins NERDTree and TagList both use it
Next Steps Get “intellisense” working properly Or just learn the BCL… Generate tags from BCL source code Try to get command line debugging working via Shell calls and the Quickfix list Start creating refactoring and code generation functions E.g. extract method, create controller Take a look at http://vim.wikia.com/wiki/Vim_as_a_refactoring_tool_and_some_examples_in_C_sharp
Closing Thoughts

Mais conteúdo relacionado

Mais procurados

A Piece of Cake - NDC Oslo 2016
A Piece of Cake - NDC Oslo 2016A Piece of Cake - NDC Oslo 2016
A Piece of Cake - NDC Oslo 2016Gary Park
 
A Piece of Cake - DDD11 - Reading
A Piece of Cake - DDD11 - ReadingA Piece of Cake - DDD11 - Reading
A Piece of Cake - DDD11 - ReadingGary Park
 
A Piece of Cake - DDD North
A Piece of Cake - DDD NorthA Piece of Cake - DDD North
A Piece of Cake - DDD NorthGary Park
 
Having your cake, and eating it too!
Having your cake, and eating it too!Having your cake, and eating it too!
Having your cake, and eating it too!Gary Park
 
Having your cake, and eating it too! - DDDScotland
Having your cake, and eating it too! - DDDScotlandHaving your cake, and eating it too! - DDDScotland
Having your cake, and eating it too! - DDDScotlandGary Park
 
Typescript - a JS superset
Typescript - a JS supersetTypescript - a JS superset
Typescript - a JS supersetTyrone Allen
 
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...Develcz
 
Scripting Recipes for Testers
Scripting Recipes for TestersScripting Recipes for Testers
Scripting Recipes for TestersAdam Goucher
 
Building End-to-End Apps Using Typescript
Building End-to-End Apps Using TypescriptBuilding End-to-End Apps Using Typescript
Building End-to-End Apps Using TypescriptGil Fink
 
Go Programming Language by Google
Go Programming Language by GoogleGo Programming Language by Google
Go Programming Language by GoogleUttam Gandhi
 
Daniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého SchizmaDaniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého SchizmaDevelcz
 
NativeScript: mobile app. no webview.
NativeScript: mobile app. no webview.NativeScript: mobile app. no webview.
NativeScript: mobile app. no webview.Tomek Sułkowski
 
Log4cpp - Updated - to verify modify updates
Log4cpp - Updated - to verify modify updatesLog4cpp - Updated - to verify modify updates
Log4cpp - Updated - to verify modify updatesyosaggregator2
 
Leveraging Continuous Integration For Fun And Profit!
Leveraging Continuous Integration For Fun And Profit!Leveraging Continuous Integration For Fun And Profit!
Leveraging Continuous Integration For Fun And Profit!Jess Chadwick
 
The new way to extend VSTS Build and Release
The new way to extend VSTS Build and ReleaseThe new way to extend VSTS Build and Release
The new way to extend VSTS Build and ReleaseJesse Houwing
 

Mais procurados (19)

A Piece of Cake - NDC Oslo 2016
A Piece of Cake - NDC Oslo 2016A Piece of Cake - NDC Oslo 2016
A Piece of Cake - NDC Oslo 2016
 
A Piece of Cake - DDD11 - Reading
A Piece of Cake - DDD11 - ReadingA Piece of Cake - DDD11 - Reading
A Piece of Cake - DDD11 - Reading
 
A Piece of Cake - DDD North
A Piece of Cake - DDD NorthA Piece of Cake - DDD North
A Piece of Cake - DDD North
 
Golang
GolangGolang
Golang
 
Having your cake, and eating it too!
Having your cake, and eating it too!Having your cake, and eating it too!
Having your cake, and eating it too!
 
Having your cake, and eating it too! - DDDScotland
Having your cake, and eating it too! - DDDScotlandHaving your cake, and eating it too! - DDDScotland
Having your cake, and eating it too! - DDDScotland
 
Introduction to saucelabs
Introduction to saucelabsIntroduction to saucelabs
Introduction to saucelabs
 
Typescript - a JS superset
Typescript - a JS supersetTypescript - a JS superset
Typescript - a JS superset
 
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
 
Scripting Recipes for Testers
Scripting Recipes for TestersScripting Recipes for Testers
Scripting Recipes for Testers
 
Building End-to-End Apps Using Typescript
Building End-to-End Apps Using TypescriptBuilding End-to-End Apps Using Typescript
Building End-to-End Apps Using Typescript
 
Go Programming Language by Google
Go Programming Language by GoogleGo Programming Language by Google
Go Programming Language by Google
 
Daniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého SchizmaDaniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého Schizma
 
Fast end-to-end-tests
Fast end-to-end-testsFast end-to-end-tests
Fast end-to-end-tests
 
Testing and symfony2
Testing and symfony2Testing and symfony2
Testing and symfony2
 
NativeScript: mobile app. no webview.
NativeScript: mobile app. no webview.NativeScript: mobile app. no webview.
NativeScript: mobile app. no webview.
 
Log4cpp - Updated - to verify modify updates
Log4cpp - Updated - to verify modify updatesLog4cpp - Updated - to verify modify updates
Log4cpp - Updated - to verify modify updates
 
Leveraging Continuous Integration For Fun And Profit!
Leveraging Continuous Integration For Fun And Profit!Leveraging Continuous Integration For Fun And Profit!
Leveraging Continuous Integration For Fun And Profit!
 
The new way to extend VSTS Build and Release
The new way to extend VSTS Build and ReleaseThe new way to extend VSTS Build and Release
The new way to extend VSTS Build and Release
 

Destaque

Managing agricultural landscapes for ecosystem services, resilience and human...
Managing agricultural landscapes for ecosystem services, resilience and human...Managing agricultural landscapes for ecosystem services, resilience and human...
Managing agricultural landscapes for ecosystem services, resilience and human...SIANI
 
Best Beauty tips from Audrey Hepburn
Best Beauty tips from Audrey HepburnBest Beauty tips from Audrey Hepburn
Best Beauty tips from Audrey Hepburnlabenir
 
Microsoft Integration Roadshow: Integration in Action
Microsoft Integration Roadshow: Integration in ActionMicrosoft Integration Roadshow: Integration in Action
Microsoft Integration Roadshow: Integration in ActionGarry Stewart
 
2010 share point saturday deck enterprise office applications
2010 share point saturday deck   enterprise office applications2010 share point saturday deck   enterprise office applications
2010 share point saturday deck enterprise office applicationsGarry Stewart
 
Mdia3002 week 08 tute prep
Mdia3002 week 08 tute prepMdia3002 week 08 tute prep
Mdia3002 week 08 tute prepcassiechorn
 
20111030 Perth SharePoint User Group - Building an Enterprise Mash-Up Platform
20111030 Perth SharePoint User Group - Building an Enterprise Mash-Up Platform20111030 Perth SharePoint User Group - Building an Enterprise Mash-Up Platform
20111030 Perth SharePoint User Group - Building an Enterprise Mash-Up PlatformGarry Stewart
 
Perth SharePoint Saturday 2011: The Many Faces of Workflow
Perth SharePoint Saturday 2011: The Many Faces of WorkflowPerth SharePoint Saturday 2011: The Many Faces of Workflow
Perth SharePoint Saturday 2011: The Many Faces of WorkflowGarry Stewart
 
The State of Content Management
The State of Content ManagementThe State of Content Management
The State of Content ManagementTihomir Opačić
 
Alt dot net user group stop coding
Alt dot net user group   stop codingAlt dot net user group   stop coding
Alt dot net user group stop codingGarry Stewart
 
ренессанс уткина и муратова
ренессанс уткина и муратоваренессанс уткина и муратова
ренессанс уткина и муратоваnet174
 

Destaque (10)

Managing agricultural landscapes for ecosystem services, resilience and human...
Managing agricultural landscapes for ecosystem services, resilience and human...Managing agricultural landscapes for ecosystem services, resilience and human...
Managing agricultural landscapes for ecosystem services, resilience and human...
 
Best Beauty tips from Audrey Hepburn
Best Beauty tips from Audrey HepburnBest Beauty tips from Audrey Hepburn
Best Beauty tips from Audrey Hepburn
 
Microsoft Integration Roadshow: Integration in Action
Microsoft Integration Roadshow: Integration in ActionMicrosoft Integration Roadshow: Integration in Action
Microsoft Integration Roadshow: Integration in Action
 
2010 share point saturday deck enterprise office applications
2010 share point saturday deck   enterprise office applications2010 share point saturday deck   enterprise office applications
2010 share point saturday deck enterprise office applications
 
Mdia3002 week 08 tute prep
Mdia3002 week 08 tute prepMdia3002 week 08 tute prep
Mdia3002 week 08 tute prep
 
20111030 Perth SharePoint User Group - Building an Enterprise Mash-Up Platform
20111030 Perth SharePoint User Group - Building an Enterprise Mash-Up Platform20111030 Perth SharePoint User Group - Building an Enterprise Mash-Up Platform
20111030 Perth SharePoint User Group - Building an Enterprise Mash-Up Platform
 
Perth SharePoint Saturday 2011: The Many Faces of Workflow
Perth SharePoint Saturday 2011: The Many Faces of WorkflowPerth SharePoint Saturday 2011: The Many Faces of Workflow
Perth SharePoint Saturday 2011: The Many Faces of Workflow
 
The State of Content Management
The State of Content ManagementThe State of Content Management
The State of Content Management
 
Alt dot net user group stop coding
Alt dot net user group   stop codingAlt dot net user group   stop coding
Alt dot net user group stop coding
 
ренессанс уткина и муратова
ренессанс уткина и муратоваренессанс уткина и муратова
ренессанс уткина и муратова
 

Semelhante a Alt Dot Net Usergroup: Does the world end if you stop using Visual Studio?

ZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small TeamsZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small TeamsJoe Ferguson
 
Introduction to Software Development
Introduction to Software DevelopmentIntroduction to Software Development
Introduction to Software DevelopmentZeeshan MIrza
 
TypeScript - Silver Bullet for the Full-stack Developers
TypeScript - Silver Bullet for the Full-stack DevelopersTypeScript - Silver Bullet for the Full-stack Developers
TypeScript - Silver Bullet for the Full-stack DevelopersRutenis Turcinas
 
Madison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small TeamsMadison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small TeamsJoe Ferguson
 
Novice Programmers Workshop
Novice Programmers WorkshopNovice Programmers Workshop
Novice Programmers WorkshopAlec Clews
 
Midwest PHP 2017 DevOps For Small team
Midwest PHP 2017 DevOps For Small teamMidwest PHP 2017 DevOps For Small team
Midwest PHP 2017 DevOps For Small teamJoe Ferguson
 
Tips and Tricks for Using Visual Studio.Net Effectively
Tips and Tricks for Using Visual Studio.Net EffectivelyTips and Tricks for Using Visual Studio.Net Effectively
Tips and Tricks for Using Visual Studio.Net Effectivelyweili_at_slideshare
 
How to create a joomla component from scratch
How to create a joomla component from scratchHow to create a joomla component from scratch
How to create a joomla component from scratchTim Plummer
 
Why your build matters
Why your build mattersWhy your build matters
Why your build mattersPeter Ledbrook
 
Autotools, Design Patterns and more
Autotools, Design Patterns and moreAutotools, Design Patterns and more
Autotools, Design Patterns and moreVicente Bolea
 
Professional JavaScript: AntiPatterns
Professional JavaScript: AntiPatternsProfessional JavaScript: AntiPatterns
Professional JavaScript: AntiPatternsMike Wilcox
 
Debugging NET Applications With WinDBG
Debugging  NET Applications With WinDBGDebugging  NET Applications With WinDBG
Debugging NET Applications With WinDBGCory Foy
 
Writing native Linux desktop apps with JavaScript
Writing native Linux desktop apps with JavaScriptWriting native Linux desktop apps with JavaScript
Writing native Linux desktop apps with JavaScriptIgalia
 
Joomla! Day Chicago 2011 Presentation - Steven Pignataro
Joomla! Day Chicago 2011 Presentation - Steven PignataroJoomla! Day Chicago 2011 Presentation - Steven Pignataro
Joomla! Day Chicago 2011 Presentation - Steven PignataroSteven Pignataro
 
Introducing Yeoman 1.0 beta
Introducing Yeoman 1.0 betaIntroducing Yeoman 1.0 beta
Introducing Yeoman 1.0 betadigitalzombie
 
Grails beginners workshop
Grails beginners workshopGrails beginners workshop
Grails beginners workshopJacobAae
 

Semelhante a Alt Dot Net Usergroup: Does the world end if you stop using Visual Studio? (20)

Why Gradle?
Why Gradle?Why Gradle?
Why Gradle?
 
ZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small TeamsZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small Teams
 
Introduction to Software Development
Introduction to Software DevelopmentIntroduction to Software Development
Introduction to Software Development
 
TypeScript - Silver Bullet for the Full-stack Developers
TypeScript - Silver Bullet for the Full-stack DevelopersTypeScript - Silver Bullet for the Full-stack Developers
TypeScript - Silver Bullet for the Full-stack Developers
 
Madison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small TeamsMadison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small Teams
 
Novice Programmers Workshop
Novice Programmers WorkshopNovice Programmers Workshop
Novice Programmers Workshop
 
Midwest PHP 2017 DevOps For Small team
Midwest PHP 2017 DevOps For Small teamMidwest PHP 2017 DevOps For Small team
Midwest PHP 2017 DevOps For Small team
 
Tips and Tricks for Using Visual Studio.Net Effectively
Tips and Tricks for Using Visual Studio.Net EffectivelyTips and Tricks for Using Visual Studio.Net Effectively
Tips and Tricks for Using Visual Studio.Net Effectively
 
How to create a joomla component from scratch
How to create a joomla component from scratchHow to create a joomla component from scratch
How to create a joomla component from scratch
 
Why your build matters
Why your build mattersWhy your build matters
Why your build matters
 
Autotools, Design Patterns and more
Autotools, Design Patterns and moreAutotools, Design Patterns and more
Autotools, Design Patterns and more
 
Professional JavaScript: AntiPatterns
Professional JavaScript: AntiPatternsProfessional JavaScript: AntiPatterns
Professional JavaScript: AntiPatterns
 
Debugging NET Applications With WinDBG
Debugging  NET Applications With WinDBGDebugging  NET Applications With WinDBG
Debugging NET Applications With WinDBG
 
Writing native Linux desktop apps with JavaScript
Writing native Linux desktop apps with JavaScriptWriting native Linux desktop apps with JavaScript
Writing native Linux desktop apps with JavaScript
 
Joomla! Day Chicago 2011 Presentation - Steven Pignataro
Joomla! Day Chicago 2011 Presentation - Steven PignataroJoomla! Day Chicago 2011 Presentation - Steven Pignataro
Joomla! Day Chicago 2011 Presentation - Steven Pignataro
 
Beginning development in go
Beginning development in goBeginning development in go
Beginning development in go
 
Introducing Yeoman 1.0 beta
Introducing Yeoman 1.0 betaIntroducing Yeoman 1.0 beta
Introducing Yeoman 1.0 beta
 
Grails beginners workshop
Grails beginners workshopGrails beginners workshop
Grails beginners workshop
 
Golang
GolangGolang
Golang
 
Golang
GolangGolang
Golang
 

Último

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 

Último (20)

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 

Alt Dot Net Usergroup: Does the world end if you stop using Visual Studio?

  • 1. Does the world end if you stop using Visual Studio? Hint: No.
  • 2. Who Am I? Garry Stewart I do tehsoftwarez Contact me garry.stewart@gmail.com @garry_stewart http://www.garry-stewart.com/
  • 3. IDE Addicition General text editing Syntax highlighting Intellisense WYSIWYG Editors Visualisation tools Code generation Build management & compilation Code navigation File management Source control Integrated debugging Etc…
  • 4. This used to be Less Complicated, Right?
  • 5. So let’s All Develop In Notepad!
  • 7. Before We Start.. Current directory is king %PATH% matters Command line tools are your friend
  • 8. There are these things called modes… Lots of different modes Insert Visual Normal And More! You will spend most of your time in Normal mode. You cannot enter text in this mode
  • 9.
  • 10. Basic Editing :help operator :help scrolling Everything has a count 5dw == delete the next 5 words Rinse and repeat . Repeats the last command
  • 11. Stuff to Get Into if We Have Time :help buffers Syntax highlighting Creating functions and macros Refactoring Spell checking
  • 12. Ultimate Power Fully scriptable On the fly via commands Plugin architecture Built in Regex engine Reassign key commands Interact with the command line Macros No COM required to create extensions!
  • 13. Navigating Code :help various-motions Currently “broken” for C# if you have a namespace It’s all just regex, so we can extend this to work with
  • 14. Interacting With The Command Line :! <command> == execute a command (opens a new window) :r ! <command> == read the output of the console operation into the current buffer Have a custom function in my _vimrc to print output in a new window
  • 15. QuickFix QuickFix == list of search results with file navigation :copen or :cw " Open the quickfix window :ccl " Close it :cn " Go to the next error in the window :cnf " Go to the first error in the next file :colder " Look at older results :cnewer" Look at newer results Global to all windows
  • 16. QuickFix Example: Find In Files :vimgrep (or :grep if you have the actual program) Fills the QuickFix list :vimgrep /[pattern]/[g][j] {file} E.g. :vimgrep /public/j ./**/*.cs [g] == Include ALL results as separate lines [j] == Don’t jump to first result Can also use :lvimgrep (or :lgrepif you have the actual program) Fills “location list” which is local to current window Use :lw or :lopen to see this :lolder and :lnewer to navigate search result history
  • 17. Building a Project :make Uses makeprg to tell what to execute MSBuild in my case Uses errorformat to parse build output for errors Redirects errors to QuickFix window Equivalent of Visual Studio’s build error list
  • 18. Source Control Integration Didn’t we already cover this with command line integration???? I’m using git RunShellCommand to the rescue again!
  • 19. Markers Basically bookmarks Some set by Vim functions Can be set by you :help mark-motions
  • 20. Tags Build them using Exuberant Tags (ctags.exe) :tag <tagName> Jumps to a tag :tags Gives a list of all tags CTRL-g == navigate g] == list Sets a mark upon navigation Allows you to return to the same spot
  • 21. Code Completion Sort of works Can’t get it working like Intellisense with C# Works fine in C/C++/Java/Pretty much anything else Several types of completion Omni Completion In File completion Many more..
  • 22. Extensions Huge plugin community Some samples :NERDTree Basically Solution Explorer :TlistToggle Class view using Tags
  • 23. Folding Code Yes, you can do it No, I haven’t looked at it Think of this as an equivalent to #region Regions are evil Useful when building plugins NERDTree and TagList both use it
  • 24. Next Steps Get “intellisense” working properly Or just learn the BCL… Generate tags from BCL source code Try to get command line debugging working via Shell calls and the Quickfix list Start creating refactoring and code generation functions E.g. extract method, create controller Take a look at http://vim.wikia.com/wiki/Vim_as_a_refactoring_tool_and_some_examples_in_C_sharp