Trending November 2023 # Searching For Text Strings In Power Query # Suggested December 2023 # Top 16 Popular

You are reading the article Searching For Text Strings In Power Query updated in November 2023 on the website We hope that the information we have shared is helpful to you. If you find the content interesting and meaningful, please share it with your friends and continue to follow and support us for the latest updates. Suggested December 2023 Searching For Text Strings In Power Query

Let’s say we have a column of text and we want to search it to see if each row contains a list of words.

The source data that I’ll be searching through is a table in Excel named TextTable, and the list of words I’m looking for are stored in another table named WordList.


If you want to list the words your searches find, then read this post : Create a List of Matching Words When Searching Text in Power Query.

I’m loading this into Power Query with a query also called WordList, and then transforming the table into a list. By using the name WordList in other queries I can refer to the list of words that query produces.

The query to create a list of words The list created by the query

Download the Excel Workbook With All the Sample Queries in This Post

The queries in this Excel file can be copied/pasted into the Power BI Desktop Advanced Editor and will work there too.

Enter your email address below to download the workbook with the data and code from this post.

By submitting your email address you agree that we can email you our Excel newsletter.

Please enter a valid email address.

Download the Excel Workbook.

Finding Substrings

The first thing I’m going to do is look for substrings. An example : searching for apple in the phrase four green apples will return True because apple is part of the word apples.

This query will not be looking for exact word matches, but another query later on will be doing this.

The query to look for substrings is:

After loading the source data from TextTable, the query is adding a custom column named Check.

The 3rd parameter for Table.AddColumn is a function, and I’ll need to use this capability.

To search for substrings, I’m using Text.Contains but this is only able to compare one string with another. It doesn’t work its way through a list checking each word in that list against the text in the current row of the TextCol column.

I need to write a function that will do this and this section of code is that function

You can write your own custom functions in Power Query but you can also write them inline in your M code. This is known as a lambda function, or an anonymous function. You don’t have to name it or declare it somewhere else.

The word FindStrings is actually the parameter name for the value passed into the function. I called it FindStrings to make it clear what the function was doing, but the function would work just as well if you called the parameter x.

To explain what this function does let’s work from the inside of the function out.

You have to look at the List.Transform function at the same time as the Text.Contains function to see what’s happening, but first let’s understand what each functions does.

List.Transform takes a list, in our case the output from the WordList query, and changes, or transforms, that list according to the result of the 2nd parameter. In this case the 2nd parameter is each Text.Contains((FindStrings[TextCol]), _ )

So for each item in WordList, call Text.Contains to check if that item is in the current row of the TextCol column.

The _ is short hand for the current item and in Text.Contains((FindStrings[TextCol]), _ )) refers to the current item in WordList.

As the function works through the WordList the result from Text.Contains is used by List.Transform to modify WordList into a new list.

Text.Contains returns TRUE or FALSE indicating if the substring was found or not. To help visualize the first test look at this

Text.Contains(“One yellow mango”, “apple” ))

Which yields FALSE and List.Transform changes WordList to

NOTE: WordList itself is not changed. List.Transform works with a copy of the WordList and returns a new list as its result.

The second test is

Text.Contains(“One yellow mango”, “yellow” ))

Which yields TRUE and List.Transform changes WordList to

The 3rd and 4th tests both give FALSE because neither PEAR nor RED are in the string one yellow mango.

WordList ends up as a list of TRUE or FALSE.

which is evaluated by List.AnyTrue as TRUE

This process is carried out for each row in the TextCol column with the end result being a column of TRUE or FALSE added to the original table.

In row 1 the result is TRUE because the word yellow is in row 1 of TextCol. Row 5 is also TRUE because apple is in the string in row 5 of TextCol.

The results for rows 2, 3 and 4 are FALSE. In rows 3 and 4 we get FALSE because the search is case sensitive. The word PEAR in WordList is not the same as pear.

Finds Substrings – Ignoring Case

To do a case insensitive search for substrings we can use the optional 3rd parameter for Text.Contains.

This 3rd parameter is a comparer which tells Text.Contains how do do the comparison.

By specifying Comparer.OrdinalIgnoreCase as the comparer, the text comparisons become case insensitive.

Rows 3 and 4 now give a True result too.

Exact Match String Searches

Let’s say that we want to search only for exact words, so searching for apple in apples would return false.

To do this we need to use a different function, List.ContainsAny. This takes two lists as inputs and checks if any of the values in one list are in the other list.

Here, the list to search is the text in each row of TextCol, and the words we’re looking for are in WordList.

The query looks like this

For each row in TextCol, List.ContainsAny compares the string of text in TextCol with WordList. Because List.ContainsAny takes lists as inputs, we have to use Text.Split to split the string in the TextCol column into a list of separate words.

The results show that only the first row gives a TRUE result because yellow is the only exact match. This search is case sensitive.

Exact Match String Searches – Ignoring Case

The exact match search can also be made case insensitive by utilising the 3rd optional parameter for List.ContainsAny.

In the official documentation this 3rd parameter is cryptically decribed as equationCriteria. In practice you can actually write your own function for this parameter and specify how you want the comparison performed.

In the following image I’ve laid out the lines of the query so it is easier to see what is going on.

We already know what the first two parameters are so I’ll explain what the 3rd one is doing. It’s another lambda function taking two parameters x and y. In this situation x is Text.Split( [TextCol] , ” “) and y is WordList.

The function uses the Comparer.Equals function to tell List.ContainsAny that when it does the comparison of the values x and y, ignore case.

The results look like this because the words yellow, pear and red are exact matches when case is ignored.

I hope you find these queries useful.

You're reading Searching For Text Strings In Power Query

Handling Http Errors In Power Query And Power Bi

If you are working with web servers, either because you are trying to scrape data or you are using a web based API, you will be sending and receiving data via HTTP.

HTTP is the Hypertext Transport Protocol – it’s just the name of the system used by web sites to transfer data. You use it every time you visit a web site

If your request results in an error, the web server (or API) will generate an error which is returned to Power Query.

The default behaviour is for Power Query to then spit out a message like this

If you are not familiar with HTTP or this type of error then this can be confusing. What exactly is the problem?

This Works In Power BI and Power Query in Excel

I’m going to do this in Excel but you can do the same in Power BI. The main query uses exactly the same code in Excel and PBI. But the method to create the static data table of HTTP Error Codes is different.

In Excel I use #table and in Power BI I use the Enter Data button on the Ribbon. To read more about the different ways to enter static data check out this blog post Static Tables in Power Query, Power Pivot and Power BI.

Watch the Video

Download Sample Files

Enter your email address below to download the sample workbook.

By submitting your email address you agree that we can email you our Excel newsletter.

Please enter a valid email address.

Excel Workbook. Note: This is a .xlsx file please ensure your browser doesn’t change the file extension on download.

Power BI Desktop File.

If you could handle this type of error in your code and provide a little more information to the end user, perhaps that would help them troubleshoot the issue and resolve the problem.

What if your error message was this

The message gives the user some idea of things to check (spelling) and tells them a way to confirm the URL is correct (type it into the browser).

Looking at the query, the URL it’s trying to access is

Typing this URL into my browser gives this error

You may have already spotted that the URL is incorrect. It should end with microsoft-365 not microsoft-356

By giving a more informative error message and some steps the user can take to troubleshoot, we can help them fix, or at least understand problems that may occur.

Manual Status Handling

Manual status handling means you are going to write your own code to deal with errors. You have to tell Power Query you’re going to handle them and you do this by specifying the ManualStatusHandling value when you make the Web.Contents request.


Only Web.Contents allows you to manually handle HTTP responses. Neither chúng tôi or Web.BrowserContents support this ability.

For example to tell Power Query that you will deal with 400 (Bad Request) and 404 (Not Found) errors the request would look like this

Where the list of error codes you’ll handle are specified as a list of numbers {400, 404}

Handling errors means that you need to write you own error messages. To store these I’ve created a static data table that stores the error codes and the messages I want to display should the associated error occur.

The table is stored in a query called HTTP_Errors and looks like this

The ErrorCode column is a list of the error codes I’m handling so I can change the Web.Contents request to reflect this by replacing the { 400, 404 } list.

To check if an error has occurred you can use the Value.Metadata function

This gives you data like this, and I’m interested in the Response.Status

You can see the web server has responded with a 404 error. To access this value directly you can do so like this

Now that we can get the response code from the web server, we need to check if it is an error we want to handle. To do this you can use List.Contains to check if the ResponseCode is in the ErrorCodes column of the HTTP_Errors table.

If the web server’s response code is an error we want to handle then the code needs to display the associated error message.

To access the error message, first I’ll use List.PositionOf to get the row number for the error code.

Because table columns are lists you can use list functions on them. Lists are indexed from 0 so error code 404 is on row 3.

If the web server’s response is not an error I want to handle then the code will just return the response as it is.

Putting this all together the code looks like this

If an error occurs that isn’t listed in my HTTP_Errors table then Power Query will deal with that in the default way.

If no error occurs then the Response step contains the web server’s response and further transformations can be carried out on it.

A Quick Overview On Different Power Query Tools In Power Bi

Power Query is a powerful tool in data transformation. After understanding about the ribbons and panes found in the Query Editor, the next step is getting acquainted with its various features.

Under the Home tab, you can see the Advanced Editor option.

At the top left corner of this window, opposite to the query name, you’ll find the Display Options drop-down menu and the question mark.

If you choose to display line numbers, for example, the M code generated by the Advanced Editor will be written in a single line.

However, this display option will require you to scroll frequently unless you enable the word wrap option. When you enable this, the M code will be automatically indented and split into multiple lines.

You can’t adjust the font size in the Advanced Editor window. However, you can zoom in and out by pressing Ctrl+Shift together with either the plus sign to zoom in or the minus sign to zoom out. Press Ctrl+0 to restore the default zoom percent. These zoom options also work in the Query Editor.

Go to the View tab and focus on the Data Preview section.

By default, column profiling is only performed on the top one thousand rows. In this example, even if the profile options are disabled, you can already see a snippet of the column quality using the green line directly under the column header.

If you enable the Column Quality option, a new row appears under the column headers. This row shows the same information as when you hover over the green line.

If you enable the Column Distribution option, another row will appear.

This shows the number of distinct and unique values per column. It can also help determine the consistency of the data.

At a quick glance, you can see if the data is evenly distributed. This makes it easier to identify problems within your data that you need to sort before proceeding with your work.

Next, if you enable the Column Profile option, you’ll see the column statistics and value distribution of your data found at the bottom.

Aside from the figures you’ve already seen so far, this option offers a more detailed explanation depending on your data type.

Again, the options of the ellipsis menu change depending on the data type. If you select a text column, you’ll get a different set of group by options.

A new window then appears showing the flow of data from one query to the next.

This makes it easier to follow through errors in your report. You can also see the load destination of your queries.

If you want to delete a query with dependencies, you’ll get a notification listing all the downstream queries of the one you want to delete.

Power Query will never allow you to delete a query with dependencies.

However, if you do need to delete a query with dependencies, you have two options. First, you can delete the downstream queries. Second, you can change their data source so that they’re no longer dependent on the query you want to delete.

Before learning about queries and M codes, it’s important to first be acquainted with the features in the Query Editor and how they work.

By understanding how the query editor is organized along with its features, it will be easier for you to navigate the program as you work. The shortcuts and quick access options will also help you work more efficiently.


Asleep At The Wheel: Searching For Super

LAS VEGAS—Cool, intelligent car? Check. Controller wristwatch? Check. Now all you need is the leather jacket and 1980s perm to be Michael Knight.

Mobile device connections, active safety features and autonomous driving are turning cars into your own “personal robot,” as Nvidia CEO Jen-Hsun Huang describes it.

”The car will be your most important personal computer,” he told reporters at Nvidia’s press conference on Sunday. The company wants its upcoming 192-core Tegra K1 graphics chip to be used for HD video playback and 3D gaming for passengers, as well as for driver assistance programs such as collision avoidance. Along with GM, Honda and other carmakers, Nvidia is part of Google’s Open Automotive Alliance (OAA), announced Monday, that will bring the Android platform to cars in 2014 in a standardized infotainment ecosystem.

”There will be no big bang to get an autonomously driving car.”

Audi, another OAA member, showed off the second generation of its zFAS car “brain,” a tablet-sized piece of hardware that piloted an A7 sedan onto the stage during an Audi keynote presentation. The device was also parking Audis all by itself outside the Las Vegas convention center.

When viewed through rose-tinted spectacles, all the zFAS needs is a prissy accent and a turbo boost, and you’d have your own personal KITT.

Baby steps

Car enthusiasts at CES who are looking forward to super-intelligent, self-driving cars want to know when they’ll be able to fall asleep at the wheel while “driving” to work.

The most important step for BMW is high-resolution map data, Frickenstein said after speaking at a panel on how technology is changing driving. “Then, we can drive autonomously on the road.”

Induct Technology’s autonomous Navia shuttle.

Since then, production cars have been getting autonomous features such as driver assist, but cars at CES were taking the next step.

Just outside the convention center, France’s Induct Technology was demonstrating its just-launched Navia, a $250,000 self-driving shuttle designed to ferry people around university campuses, airports and other zones with limited traffic. The company calls it the world’s first self-driving commercially available vehicle. The Las Vegas Monorail zipped by overhead, of course, but it uses a purpose-built track.

”We use mainly SLAM (simultaneous location and mapping) lasers to map and detect obstacles,” Induct marketing and communications director Max Lefevre said as he ushered me into the all-electric shuttle. Soon it was silently transporting us around a test track. “The lasers see up to 200 yards, and the vehicle knows to either slow down or stop if there’s an obstacle.”

This new relationship between car and driver evokes many science-fiction scenarios, but if you ask automotive insiders when the future of completely self-driving cars will arrive, don’t hold your breath.

Some Induct customers will have a Navia fleet this year, Lefevre said, but he wouldn’t identify them. The shuttle has been extensively tested in areas full of pedestrians, he said, adding that legislative changes are needed for wider deployment.

I sat in the rear seat as the Taurus hurtled toward an intersection while another Ford vehicle to the right approached at speed from behind cars blocking the view. In what seemed like a second or two before impact, the Taurus alerted its driver to stop with flashing LEDs projected on the windshield, a sound alarm and vibrations in the seats. He then slammed on the brakes.

The NHTSA has been evaluating V2V tests and is expected to announce a policy for bringing it to commercial implementation in a few weeks, according to Farid Ahmed-Zaid, a technical expert in Ford’s Active Safety Department. While the technology could reduce fatal collisions dramatically, Ahmed-Zaid admitted that, “If GPS fails, then you don’t have anything.”

Eliminating the little hassles

Bosch’s self-parking car. 

Some industry observers are concerned that making cars smarter, more aware and more independent could erode driver skills. That could become an inevitable effect of automobile evolution, just as fewer people today can operate a manual transmission than in motoring’s early days.

There is also concern that loading smart cars with even more navigation features, cloud-linked data services and social media functions will only increase distracted driving. But those features are also seen as desirable, because as cars drive themselves more, drivers will need to be entertained. Android apps in the new OAA alliance will soon be competing with apps under the iOS in the Car standard announced by Apple last summer.

BMW’s i3 electric production car, available in the second quarter 2014 with a list price starting at $41,350, can already link with driver smartphones via the BMW i Remote app, sharing info on battery charge, whether doors are open or closed and other vehicle features. In a spin on this, still at the concept stage, BMW and Samsung showed how the phone maker’s Galaxy Gear smartwatch can link to the i3 and display information on drivers’ wrists (pictured at top), allowing them to command the car’s horn to sound if they’ve lost their i3 in a large parking lot.

If CES 2014 is anything to judge by, cars are getting increasingly connected to drivers and increasingly autonomous. This new relationship between car and driver evokes many science-fiction scenarios, but if you ask automotive insiders when the future of completely self-driving cars will arrive, don’t hold your breath.

Best Solar Power Banks For Iphone In 2023

Do you also love camping and nature photography? Outdoor lovers like me always face problems keeping our phones, cameras, and other devices charged. Because most of the time, there is no power supply. However, a solar power bank for iPhone can be your best mate.

You may find it difficult to choose the right one for yourself. And that’s where this list of reliable solar power banks for iPhone will come in handy.

How does a solar power bank works?

No one would like to have a dead phone during a lengthy journey. Carrying a solar power bank for your iPhone is wise to avoid these circumstances. It converts the solar energy to electricity and store that in batteries. 

These handy, compact gadgets come in a variety of designs. Although the most popular ones are either a single foldable solar panel or many expanding panels. While one-panel solar chargers are more portable, they are slower.

No matter which one you choose, having a solar power bank handy is a great thing; because they are:


Provide uninterrupted charging 

Compatible with many devices


6 Best solar power banks for iPhone

1. BLAVOR solar power bank: Editor’s choice

Capacity: 20000mAh

Wireless Charging: 7.5W 

Output/input: 2 USB A, 1 Type-C, Qi wireless charging

Blavor Solar Power bank offers 20000mAh jumbo battery and QC3.0 fast charging support. The 10W Fast Qi wireless charging technology frees you from cable clutter. You can charge your iPhone wirelessly with a 7.5W power supply. 

With a 5V 2.1A adaptor, it can be completely refilled in around 13 hours. I loved the incorporated compass and flashlight. Those make it a must-have gadget for outdoor lovers and emergency scenarios like short power outages.


QC3.0 fast charging

A built-in compass and flashlight

IPX5 waterproof 


Solar charging needs to be improved

2. Anker PowerCore solar: Boasts smart trickle charging mode

Capacity: 10000mAh

Wireless Charging: No

Output/input: 2 USB A, MicroSD port (input)

Anker PowerCore has a 10000mAh dual-port charger. It is the best solar power bank if you love extreme outdoor activities. With the IP64 rating, it is splashproof, dustproof, and shock-resistant. 

Besides, you will get a higher solar efficiency than other power banks because of the SunPower monocrystalline panels. For quick charging support, use the Micro USB input connector. With 15W output, you can charge your iPhone 11 twice and iPhone XS more than two and a half times.


Trickle charging mode for low-power accessories

PowerIQ technology for optimized charging

3 light modes


Slow charging

No wireless charging support

Check out on: Anker

3. Raddy SW5: Solar power bank with a built-in weather radio

Capacity: 5000mAh

Wireless Charging: No

Output/input: USB A, USB-C charging port

How about enjoying your camping with some music? Raddy SW5 comes with an AM/FM/NOAA weather radio and 5000mAh battery. It has an IPX5 waterproof rating, an SOS alarm, a compass, and three lighting modes. 

This power bank is made from ABS & TPU materials for durability. In addition to solar charging, you can recharge it using USB 3.0 type-C charging and the hand crank. With the FM/AM and NOAA band support, you may tune in to music, sports, news, and the weather report.

SW5 will undoubtedly accompany you if you love reading as the night falls. It has three different reading lamp modes along with the flashlight. Altogether it’s the best solar power bank for camping. 


Three charging modes

FM radio support

Digital clock


No wireless charging 


4. ToughTested solar power bank: Perfect wireless charging

Capacity: 10000mAh

Wireless Charging: Yes

Output/input: 2 USB A, 1 USB-C

Tough Tested ROC has an effective solar charger on one side and a wireless charging pad on the other. You can juice all your devices with the 10,000mAh battery, two USB-A ports, and one USB-C port.

The IP65 waterproof rating guarantees protection against splash and dust. The built-in lighting improves visibility at night. Along with all Qi wireless charging-enabled phones, it is compatible with other USB devices like GoProTM.


Qi-enabled wireless charging

IP65 rating 



5. Survival Frog QuadraPro solar power bank: Premium choice

Capacity: 6500mAh

Wireless Charging: Yes

Output/input: 2 USB A, 1 USB-C

Survival Frog QuadraPro is one of the best solar charger power banks with four solar panels. Using the built-in magnets, it’s easy to install anywhere and features a portable design with carabiner clips.

Four powerful 5.5W solar panels can charge the 6,500 mAh battery pack within 12 hours. Hence, its charging capability is 4-5 times quicker than comparable power banks. You can swiftly charge three devices simultaneously with a wireless charging pad and two 5V outlets.

I loved the magnetic leather case with a waterproof coating that adds durability, flexibility, and heat resistance. The built-in LED flashlights allow you to do the chores at night.


Magnetic leather case

Four solar panels

Quick charging



6. PunkCase solar power bank 20000mAh: Best for quick charging

Capacity: 20000mAh

Wireless Charging: Yes

Output/input: 2 USB A, 1 USB-C

PunkCase 20000mAh solar wireless power bank offers 18W Qualcomm Quick Charge 3.0 support. Along with that, it has an integrated smart IC. Hence your phone will be charged up to 80% quicker than regular chargers in only 30 minutes.

You can charge two devices simultaneously with one Micro USB and one USB output port. I will praise the sleek portable design with an ABS shell that resists shock and provides overheat protection. 


Lifetime exchange warranty

LED indicators

Quick charge support 



Check out on: PunkCase


Q. How long does a solar power bank last?

If you set your solar power bank to direct sunshine, it will typically take between 25 and 50 hours to recharge completely. A fully charged solar power bank with a capacity of 10,000 mAh can last two to three days and charge your phone nearly twice. 

Q. What is the difference between a solar charger and a solar power bank?

Solar chargers convert solar energy into electricity and directly power up your devices. On the other hand, solar power banks store the energy into batteries so that you can use that later at night.

So, that’s all!

Read more:

Author Profile


Ava is an enthusiastic consumer tech writer coming from a technical background. She loves to explore and research new Apple products & accessories and help readers easily decode the tech. Along with studying, her weekend plan includes binge-watching anime.

Best Text Editor For Mac In 2023 (Detailed Guide)

A text editor is a handy, flexible tool that deserves a place on every computer. By default, there is a basic one preinstalled with every popular operating system. They’re most commonly used by developers, but also often by writers and note-takers. The best text editors tend to be incredibly powerful and highly configurable, making them a very personal choice.

That means those who use text editors have strong opinions about them. Finding one that’s just right is essential. The more familiar you become with it, the more useful you’ll find it. That’s why many people still use powerful text editors that are over 30 years old, like Vim and GNU Emacs.

On the surface, a text editor may look plain, simple and boring, but that’s because you haven’t gotten to know it yet. Under the hood, there are powerful features you can use to design a website, develop software applications, and write a novel. Text editors are also useful for small jobs like writing lists or jotting down notes. They tend to come with a basic set of features that can be extended through plugins.

So what’s the text editor for you?

Our number one recommendation is Sublime Text 3. It’s a speedy, attractive, full-featured text editor for the Mac, Windows, and Linux. It costs $80, but there’s no official time limit to the trial period, so you can get to know the app before purchasing. It’s configurable, and a wide range of packages are available to add the specific features you need.

Atom is a popular free alternative. Like Sublime Text, it’s cross-platform, capable, and extensible through a large package repository. Its focus is on application development, but it’s an Electron app, so not as responsive as our winner.

Other text editors are also extremely capable and have their strengths, focuses, limitations, and interfaces. We’ll cover twelve of the best and help you find the one that’s perfect for your needs, preferences, and workflow.

Why Trust Me for This Guide?

A good text editor is one of my favorite tools. I have been using them for decades, first in DOS, then Windows, Linux, and now Mac. I often edit content for the web in a text editor, viewing the HTML markup directly. I can sometimes be quite fussy about the code that is used and how it is laid out.

On Linux, my favorite text editors were Genie and Bluefish, though I also regularly used Gedit and Kate. When I switched to Mac, I initially used TextMate. After some time, though, I turned to Sublime Text, which was updated regularly.

I bought Textastic for my iPad and eventually switched to it on my Mac as well. It’s lean, mean, and did everything I needed at the time.

I’ve also often played with Vim and Emacs over the years, but haven’t dedicated enough time to learn how to use them proficiently. Their interfaces have no resemblance to modern apps, so I found it hard to stick with them even though I’m convinced they’re the most powerful tools out there and have friends who swear by them.

Who Needs a Text Editor?

Who needs a decent text editor? Anyone who needs to work with plain text files. That includes people who need a casual tool for small edits and those who use one as their primary software tool every day. You can use a text editor for tasks like:

creating HTML and CSS files when creating a website

writing content for the web in HTML or Markdown

developing web apps using a programming language like Python, JavaScript, Java, Ruby on Rails, or PHP

developing desktop apps using a programming language like Objective C, C#, or C++

developing mobile applications using a programming language like Java, Python, Objective C, Swift, C#, C++

editing text-based configuration files for a software program or your operating system

writing in markup languages that allow you to add formatting to plain text, like Fountain for screenplays and Markdown for prose

taking notes in plain text or Markdown to avoid vendor lock-in

Some text editors are developed with one or more of these tasks in mind. A text editor aimed at app developers may include a debugger, while a text editor aimed at web developers might feature a live preview pane. But most text editors are flexible enough to be used for any purpose.

The appeal of a text editor is that it can be used for so many different things, and personalized in ways that no other type of app can. However, many users prefer to use a more specialized tool, for example, an IDE (Integrated Development Environment) for programming, or a dedicated writing application like Scrivener or Ulysses.

Since you’re interested in text editors, we have a number of other roundups that may also interest you:

Best Text Editor for Mac: The Winners

Best Commercial Text Editor: Sublime Text 3

Sublime Text 3 is a cross-platform text edit that’s fast, easy to get started with, and meets the needs of most users. It was launched in 2008 and is full-featured and highly customizable—an excellent choice for anyone needing a professional, capable text editor.

Visit the official Sublime Text Site to download. The free trial period is indefinite. The app costs $80 for each user (not for each machine) for continued use.

At a glance:

Tagline: “A sophisticated text editor for code, markup and prose.”

Focus: All rounder—app development, web development, writing

Platforms: Mac, Windows, Linux

It looks great and is rich in features. Sublime Text 3 works consistently across all platforms, which is achieved by the use of a custom UI toolkit, and the app itself is native to each operating system. That makes it more lightweight and responsive than other cross-platform editors.

Sublime Text offers a wide range of keyboard shortcuts to keep your fingers where you want them, and an optional Minimap on the right side of the screen shows you immediately where you are in a document.

Syntax highlighting is offered, and a range of color schemes are available. Here are the default settings for an HTML file:

And here is the default syntax highlighting for a PHP file:

You can see multiple open documents in a tabbed interface (as above) or in separate windows.

A distraction-free mode makes the window full-screen, and the menu and other user interface elements are hidden.

Search and replace is powerful and supports regular expressions. Search is extended to the file system with the Goto Anything (Command-P) command, which is the fastest way to open any file in the current folder. Other “Goto” commands make navigation easy and include Goto Symbol, Goto Definition, Goto Reference, and Goto Line.

Plugins are available from Sublime Text’s package management system, which can be accessed from the command palette in the app or from the official website. These can extend the functionality of the app in specific ways, and are written in Python. Almost 5,000 are currently available.

Best Free Text Editor: Atom

Atom is a free and open-source alternative launched in 2014. It has similar functionality to Sublime Text. Atom is cross-platform and based on the Electron “write once and deploy everywhere” framework, so it’s a little slower than Sublime Text.

The app was created by GitHub, which has been subsequently acquired by Microsoft. Despite misgivings by some in the community (especially since Microsoft had already developed their own text editor), Atom remains a robust text editor.

Visit the official Atom site to download the app for free.

At a glance:

Tagline: “A hackable text editor for the 21st Century.”

Focus: Application development

Platforms: Mac, Windows, Linux

Currently, the first impression Atom gives isn’t good. The first time you open it under macOS Catalina an error message is displayed:

“Atom” can’t be opened because Apple cannot check it for malicious software.

Atom is easy for new users to pick up. It offers a tabbed interface as well as multiple panes, as well as attractive syntax highlighting for a number of languages. Here is the default format for HTML and PHP files.

Like Sublime Text, multi-line editing is available, which extends to multi-user editing. Teletype is a unique feature that allows different users to open and edit the document at the same time, much as you would with Google Docs.

Code folding and smart autocompletion are available, as are regular expressions, a file system browser, excellent navigation options, and powerful search.

Since the app was created with developers in mind, it’s no surprise that Atom includes some IDE features and offers to install Apple’s development tools for you when you open it for the first time.

You add functionality to the app through packages, and the package manager can be accessed directly from within Atom.

Thousands of packages are available. They allow you to add features such as distraction-free editing, the use of Markdown, additional code snippets and language support, and detailed customization of the way the app looks and works.

Best Text Editor for Mac: The Competition

Visual Studio Code

Although Atom is now technically a Microsoft product, Visual Studio Code is the app they designed, and it’s terrific. It was launched in 2023 and is rapidly gaining popularity. Its standout features are smart code completion and syntax highlighting.

Visit the official Visual Studio Code site to download the app for free.

At a glance:

Tagline: “Code editing. Redefined.”

Focus: Application development

Platforms: Mac, Windows, Linux

VSCode is fast and responsive, aimed at developers, and focused on editing and debugging code. It is released under an open-source MIT License.

IntelliSense is a feature that adds intelligence to code completion and syntax highlighting by taking variable types, function definitions, and imported modules into account. Over 30 programming languages are supported, including chúng tôi and C#. Here is its default syntax highlighting for HTML and PHP files:

The app has a bit of a learning curve and includes both a tabbed interface and split windows. Zen Mode provides a minimal interface at the touch of a button, hiding menus and windows and maximizing the app to fill the screen.

It includes a terminal, debugger, and Git commands but is not a full IDE. For that, you need to purchase the much larger Visual Studio, Microsoft’s professional IDE.

A vast extension library is available from within the app, giving access to free packages that extend VSCode’s functionality. These include plugins for writing in Markdown, running shell scripts, and even creating AppleScript.

BBEdit 13

Bare Bones Software’s BBEdit 13 is a highly popular Mac-only editor that was first released way back in 1992. According to the official website, it’s designed to serve the needs of writers, web authors, and software developers.

Visit the official BBEdit site to download the app. An individual license costs $49.99. Subscriptions can be purchased from the Mac App Store and cost $3.99/month or $39.99/year.

At a glance:

Tagline: “It doesn’t suck.®”

Focus: All-rounder: app development, web development, writing

Platforms: Mac only

This text editor is a favorite among Mac fans and conforms closely to Apple’s user interface guidelines, including keyboard shortcuts and drag-and-drop conventions. It is both fast and stable.

However, it is less modern than other text editors in this review. It feels a little dated. It doesn’t offer tabs for each open document; instead, opened files are listed at the bottom of the side panel. Compared to other text editors, adding themes and packages is quite a complicated task.

Syntax highlighting and function navigation are well implemented. Here’s how HTML and PHP files are displayed:

Search is powerful, offering both regular expressions and Grep pattern matching. Code folding and text completion are available, but multi-line editing is not.

This editor provides more tools for writers by default than most of its competitors. In fact, author Matt Gremmel has been using it as one of his primary writing apps since at least 2013, though he does use other apps as well.

Coda (Now Nova)

Panic’s Coda is a Mac-only text editor with a focus on web development and was initially released in 2007. It won’t be around much longer because it will be superseded by a new app.

Visit the official site to download the app. You can purchase the app for $99.

At a glance:

Tagline: “You code for the web. You demand a fast, clean, and powerful text editor. Pixel-perfect preview. A built-in way to open and manage your local and remote files. And maybe a dash of SSH. Say hello, Coda.”

Focus: Web development

Platforms: Mac only

Coda is now twelve years old and feels dated. Panic realizes that, and instead of just giving it a facelift, they developed a brand new app: Nova.

It includes some useful features for web developers. My favorite is the built-in WebKit Preview with a web inspector, debugger, and profiler. It can also easily access remote files, including those on FTP, SFTP, WebDAV, or Amazon S3 servers.

Coda includes many of its competitors’ features:

Search and replace

Code folding

Project-wide autocomplete

Automatic tag closing

Syntax highlighting for a wide range of languages

Here’s how the default syntax highlighting looks for our sample HTML and PHP files:

A large plugin repository is available on the official website allowing you to add additional features to the program. The Cocoa scripting language is used. An iOS companion version (free on the iOS App Store) enables you to check and edit code when you’re on the move, and you can sync your work between devices.


UltraEdit version 20.00 is the text editor component of a suite of programs by IDM Computer Solutions, Inc, including UltraCompare, UltraEdit Suite, UltraFinder, and IDM All Access. It was first released in 1994, so it’s been around for a while and has a loyal following.

Visit the official UltraEdit site to download the app. A subscription costs $79.95/year (the second year is half-price) and covers up to five installs. Alternatively, you can subscribe to all of IDM’s apps for $99.95/year. 30-day trial, 30-day money-back guarantee.

At a glance:

Tagline: “UltraEdit is the most flexible, powerful, and secure text editor out there.”

Focus: Application and web development

Platforms: Mac, Windows, Linux

A personal license subscription covers either three or five installs—the UltraEdit website is unclear. On the home page, it talks about 3 for 1 licensing: “Your personal license is good for up to 3 machines on any combination of platforms.” Yet on the purchase page, it says a subscription covers “Up to 5 installs (personal licenses).”

The app is suitable for both web and app development. It supports HTML, JavaScript, PHP, C/C++, PHP, Perl, Python, and more. Here’s the default syntax highlighting for our sample HTML and PHP files:

It’s powerful and allows you to work with gigantic files, up to gigabytes in size. It supports multi-line editing and column edit mode, code folding, and auto-complete. The search function incorporates regular expressions and searching for files. Debugging and live preview are also supported. The app is customizable, allowing you to create macros, scripts, and keyboard shortcuts. An API and range of themes are available.

TextMate 2.0

TextMate 2.0 by MacroMates is a powerful, customizable text editor for macOS only. Version 1 was highly popular, but when Version 2 was delayed, many users jumped ship to something updated more regularly, most notably Sublime Text. The update was eventually launched and is now an open-source project (view its license here).

Visit the official TextMate site to download the app for free.

At a glance:

Tagline: “Powerful and customizable text editor with support for a huge list of programming languages and developed as open-source.”

Focus: Application and web development

Platforms: Mac only

TextMate is aimed at developers and is particularly popular among Ruby on Rails devs. It’s also of particular interest to Mac and iOS developers because it works with Xcode and can build Xcode projects.

Features are added by installing bundles. It’s lightweight and offers a clean interface. Here is how syntax is highlighted in our sample HTML and PHP files:

Advanced features like making multiple edits at once, auto-pairing of brackets, column selection, and version control are available. Search and replace works across projects, macros can be recorded, and a considerable list of programming languages are supported.


Brackets is a community-guided open-source project (released under the MIT License) founded by Adobe in 2014. It has the goal of pushing web development editors to the next level. Brackets has a clean, modern interface that you’ll be familiar with if you use other Adobe products.

Visit the official Brackets site to download the app for free.

At a glance:

Tagline: “A modern, open source text editor that understands web design.”

Focus: Web development

Platforms: Mac, Windows, Linux

Brackets has a focus on web development, and offers live preview displays of HTML and CSS files, updating pages in real-time. A No Distractions button gives you a simpler interface at the touch of a button, and a range of free extensions are available to add the specific functionality that you need.

The app supports over 38 file formats and programming languages, including C++, C, VB Script, Java, JavaScript, HTML, Python, Perl, and Ruby. Here is the default syntax highlighting for HTML and PHP:

Being an Adobe app, Brackets has seamless integration with Photoshop. PSD Lens is a feature that will extract pictures, logos, and design styles from Photoshop. Extract is a tool that will take colors, fonts, gradients, measurements, and other information from PSDs to automatically create CSS. These are particularly handy features for front-end developers.

Komodo Edit

Visit the official Komodo Edit site to download the app for free.

At a glance:

Tagline: “Code Editor For Open Source Languages.”

Focus: Application and web development

Platforms: Mac, Windows, Linux

Komodo Edit is distributed under the MOZILLA PUBLIC open-source software license. Like Atom, an error message is displayed when opening Komodo Edit for the first time in macOS Catalina:

“Komodo Edit 12” can’t be opened because Apple cannot check it for malicious software.

The app is simple enough for beginners to begin using immediately. Focus Mode displays just the editor. A tabbed interface lets you easily switch between open files. Go To Anything allows you to quickly search for and open the file you want. Here is how an HTML and PHP file is displayed in the editor.


Purchase the app for $7.99 from the Mac App Store. A trial version can be downloaded from the official Textastic site. The iOS version can be purchased for $9.99 from the App Store.

At a glance:

Tagline: “Simple and fast text editor for iPad/iPhone/Mac.”

Focus: Simplicity and ease of use

Platforms: Mac, iOS

Textastic is affordable and user-friendly. I’ve used the app on my iPad since it was released, and started to use the Mac version since it was available because it’s lightweight and easy to use. It’s capable, but not the most powerful.

More than 80 programming and markup languages are supported. Here is how Textastic displays HTML and PHP.

It will auto-complete code for HTML, CSS, JavaScript, PHP, C, and Objective-C. It supports TextMate and Sublime Text definitions. Your files are synced between the Mac and iOS version via iCloud Drive.


Vim is a highly configurable command line text editor created in 1991. It’s an update to Vi (“Vi Improved”), which was written in 1976. It’s still used by many developers today, although its interface is different from modern text editors. MacVim addresses that, to some extent, but it still has a considerable learning curve.

Visit the official MacVim site to download the app for free.

At a glance:

Tagline: “Vim – the ubiquitous text editor.”

Focus: Anything you can imagine

Platforms: Mac. (Vim is available as a command-line tool on Unix, Linux, Windows NT, MS-DOS, macOS, iOS, Android, AmigaOS, MorphOS.)

While MacVim is written only for Macs, Vim is as cross-platform as you can get. It’s available on Unix, Linux, Windows NT, MS-DOS, macOS, iOS, Android, AmigaOS, and MorphOS. It’s designed for developers, and a massive number of add-ons are available.

To add text to the file, you need to enter Insert Mode by pressing the letter “i” to insert text where the cursor is, or “o” to insert text at the beginning of the next line. Exit Insert Mode by pressing Escape. Some commands start with a colon. For example, to save a file, type “:w” and to exit type “:q”.

Although the interface is different, MacVim can do everything the text editors above can do, and more. Here’s how syntax highlighting is displayed for HTML and PHP files:

Is it worth learning an app that’s so different from modern apps? Many developers answer with an enthusiastic, “Yes!” Here are some articles that talk about why some devs use and love Vim:


GNU Emacs is similar. It’s an ancient command-line editor originally released in 1984 as an update to an older 1976 Emacs. Spacemacs is an attempt to bring it into the modern world, though even just installing the app is a lot of work!

Visit the official Spacemacs site to download the app for free.

At a glance:

Tagline: “Emacs—an extensible, customizable, free/libre text editor — and more.”

Focus: Anything you can imagine

Platforms: Mac (GNU Emacs is available as a command-line tool on a wide range of operating systems.)

GNU Emacs and Spacemacs are available free of charge under a GPL license. Like Vim, you’ll have to spend time learning how to use it before you get anything done. Installing the app takes quite a lot of work on the command line, but developers shouldn’t have any difficulty. Make sure you first read the documentation carefully.

When you first launch Spacemacs, you choose whether you prefer Vim’s or Emac’s editor style and several other options. After that, the required additional packages will be installed automatically. The program is powerful and relies on the Emacs-Lisp programming language to extend its functionality.

Here is the way HTML and PHP files are displayed by default:

Spacemacs (and GNU Emacs in general) is the most difficult-to-learn app in our roundup, but also the most powerful. It will take time and effort to learn. If you’re interested, an excellent place to start is the official Guided Tour of Emacs.

Best Text Editor for Mac: How We Tested

Supported Desktop and Mobile Platforms

If you work on multiple computers running different operating systems, you may prefer to use a text editor that works everywhere you do. All of the apps recommended in this roundup work on a Mac. Some are available for other platforms as well, notably Windows and Linux. A couple of the apps also work on iOS, so you can get some work done on your iPhone or iPad when you’re out of the office.

A text editor designed specifically for Mac will look and feel like a Mac app; dedicated Mac users may find it easier to learn and use. A cross-platform app may break lots of Mac user interface conventions, but it will work the same way on all operating systems.

Here are the apps that only work on macOS:

BBEdit 13

Coda 2

TextMate 2.0


MacVim (though Vim works everywhere)

Spacemacs (though Emacs works everywhere)

These text editors also work on Windows and Linux:

Sublime Text 3


Visual Studio Code



Komodo Edit

Finally, two of our apps have companion apps that run on iOS:

Coda 2


Coda 2’s mobile app is a less powerful partner app, while Textastic’s mobile app is fully-featured.

Ease of Use

Most text editors are powerful and have a ton of features. Some make it easier for a beginner to get started, while others have a steep initial learning curve. Here are some examples:

Many text editors provide features aimed at ease of use, including a tabbed browser-like interface and a distraction-free mode.

Powerful Editing Features

Users of text editors tend to be quite technical and prefer functionality to ease-of-use. Keyboard shortcuts can speed up your workflow and allow you to keep your hands on the keyboard instead of reaching for a mouse.

Many text editors allow you to have multiple cursors so that you can select and edit more than one line at a time. They may also provide columns so that you can see different sections of the same file on the screen at the same time.

Search and replace tends to be configurable. Many text editors support regular expressions so you can search for complex patterns. Search is often extended to the file system so you can quickly find the file you need, and online storage—including FTP and WebDAV servers, Amazon S3, and more—is usually supported.

Most text editors cater to the specific needs of developers. That starts with syntax highlighting, a feature that makes source code easier to read.

The text editor understands the function of different elements of a wide variety of programming, scripting, or markup language, and displays them in different colors. We’ll include screenshots of the default syntax highlighting of each text editor, using a sample HTML and PHP file.

Code completion saves you time and reduces typos by offering to type code for you. This may be intelligent, where the app understands context, or simply a way to access a popup menu of available functions, variables, and other elements. Related features may automatically close tags and brackets for you.

Code folding allows you to use the text editor like an outliner, collapsing sections of your source code so that they are hidden from sight when not needed. Some text editors also allow a live preview of HTML and CSS files, a feature appreciated by web developers.

Finally, some text editors go beyond simple editing and include features you normally find in an IDE. These typically include compiling, debugging, and connecting with GitHub for versioning. Some text editors (including Visual Studio Code and Komodo Edit) are actually cut-down versions of the company’s IDE, which are available separately.

Plugins to Extend the App’s Functionality

The most appealing feature of many text editors is that they allow you to choose which features you need by offering a rich ecosystem of plugins. It allows you to build a custom app. It also means that text editors are less bloated: by default, they only include essential features.


A text editor is the primary tool of a developer, so it’s no surprise that some are quite expensive, either as an initial purchase or an ongoing subscription. What may surprise you is that many of the best options are free.

That may be because they are an open-source project maintained by a community of users, or because they are a convenient way to get a taste for the company’s more expensive IDE. Here are your options, listed from most affordable to least.


Atom: free (open-source)

Visual Studio Code: free (open-source)

TextMate 2.0: free (open-source)

Brackets: free (open-source)

Komodo Edit: free (open-source)

MacVim: free (open-source)

Spacemacs: free (open-source)


Textastic: $7.99

BBEdit: $49.99 outright, or subscribe (see below)

Sublime Text: $80

Coda 2: $99.00


BBEdit: $39.99/year, $3.99/month, or purchase outright (above)

UltraEdit: $79.95/year

Update the detailed information about Searching For Text Strings In Power Query on the website. We hope the article's content will meet your needs, and we will regularly update the information to provide you with the fastest and most accurate information. Have a great day!